swift纯代码UITabBarController的使用

来源:互联网 发布:草东没有派对知乎 编辑:程序博客网 时间:2024/04/29 16:43

最近在OC的基础上开始学习swift,以下是swift纯代码搭建项目架构效果图
这里写图片描述
创建一个项目 选择swift语言
这里写图片描述
将项目中的main.storyboard ,ViewController ,LaunchScreen.storyboard 删除,并将main取消为主窗口
这里写图片描述
这里写图片描述
以上操作跟OC纯代码项目架构操作一样,接下来直接上代码
在AppDelegate 类中创建主窗口并设置根控制器

 func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {        window = UIWindow.init()        self.window?.frame = UIScreen.main.bounds        self.window?.rootViewController = QCTabBarController()        self.window?.makeKeyAndVisible()        return true    }

自定义一个QCTabBarController继承自UITabBarController ,在该控制器中添加子控制器如下:

override func viewDidLoad() {        super.viewDidLoad()        //首页        let homeVC = QCHomeVC()        self.addChildViewController(childerVC: homeVC, title: "首页", normalImg: "shouye_normal", selectedImg: "shouye_selected")        //嘉宝箱        let treasureBoxVC = QCTreasureBoxVC()        self.addChildViewController(childerVC: treasureBoxVC, title: "嘉宝箱", normalImg: "jiabaoxiang_normal", selectedImg: "jiabaoxiang_selected")        //我嘉        let myShowVC = QCMyShowVC()        self.addChildViewController(childerVC: myShowVC, title: "我嘉", normalImg: "shouye_normal", selectedImg: "shouye_selected")        //会员中心        let memberCenterVc = QCMemberCenterVC()        self.addChildViewController(childerVC: memberCenterVc, title: "会员中心", normalImg: "huiyuan_normal", selectedImg: "huiyuan_selected")        self.selectedIndex = 0    }    //添加子控制器    func addChildViewController(childerVC:UIViewController,title:NSString,normalImg:NSString,selectedImg:NSString)  {        self.tabBarItem.title = title as String        let color = UIColor.hexStringToColor(hexString:"#3257d4")        self.tabBar.tintColor = color        childerVC.title = title as String        var norImg = UIImage(named:normalImg as String)        norImg = norImg?.withRenderingMode(UIImageRenderingMode.alwaysOriginal)        var selImg = UIImage(named:selectedImg as String)        selImg = selImg?.withRenderingMode(UIImageRenderingMode.alwaysOriginal)        let tabItem = UITabBarItem(title: title as String, image: norImg,selectedImage: selImg)        let naVc = QCNaVC()        naVc.tabBarItem = tabItem        naVc.addChildViewController(childerVC)        self.addChildViewController(naVc)    }
原创粉丝点击