(一)定义:与导航控制器类似,标签控制器也是一个容器类。不用的是,这个不存在层级关系。你控制器有多少个ViewController,就会一直存在这么多个。不会被释放。
(二)UIBarButtonItem是一个模型,来控制整体TabBar样式。
(三)基本实现:
/// 这里设置初始启动后,有四个页面 addChildViewController(HMHomeTableViewController(), title: "首页", imageName: "tabbar_home") addChildViewController(HMMessageTableViewController(), title: "消息", imageName: "tabbar_message_center") addChildViewController(HMDiscoverTableViewController(), title: "发现", imageName: "tabbar_discover") addChildViewController(HMProfileTableViewController(), title: "我", imageName: "tabbar_profile")
/// 添加四个子控制器 /// /// - parameter childController: 控制器名称 /// - parameter imageName: tabBarItem图片 /// - parameter titleName: tabBarItem名称 func addChildViewController(childController: UIViewController , title: String, imageName: String) { // 设置颜色 // 修改成自己的 childController.tabBarItem = HMTabBarItem() childController.tabBarItem.setTitleTextAttributes([NSFontAttributeName:UIFont.systemFontOfSize(10)], forState: .Normal) childController.tabBarItem.setTitleTextAttributes([NSFontAttributeName:UIFont.systemFontOfSize(22)], forState: .Selected) childController.tabBarItem.setTitleTextAttributes([NSForegroundColorAttributeName:UIColor.orangeColor()], forState: .Selected) childController.tabBarItem.title = title childController.tabBarItem.image = UIImage(named: imageName)?.imageWithRenderingMode(.AlwaysOriginal) childController.tabBarItem.selectedImage = UIImage(named:"(imageName)_selected")?.imageWithRenderingMode(.AlwaysOriginal) let nav = HMNavgationController(rootViewController: childController) childController.navigationItem.title = title addChildViewController(nav) }