这里是用纯代码的方法搭建tabbar的框架,学习这个方法也是为了适配低版本的程序,storeboard的开发为了可以方便多用户的开发 有一个Reference的方法可以将storeboard单分出来,但是这个方法只能用于iOS9.0以上的机型,操作步骤是Editor-> Refactor to StoreBoard,然后创建就可以了,目前大部分的机型还是停留在9.0以下,所以我还是要学习纯代码的创建框架
1、首先创建4个tabviewcontroller的swift的文件
2、然后在mainViewController文件中写
import UIKit
class MainViewController: UITabBarController {
override func viewDidLoad() {
super.viewDidLoad()
/*
// 1.创建控制器
let home = HomeTableViewController()
// 从内像外设置, nav和tabbar都有
home.title = "首页"
home.tabBarItem.image = UIImage(named: "tabbar_home")
home.tabBarItem.selectedImage = UIImage(named: "tabbar_home_highlighted")
// 注意: Xocde7之前只有文字有效果, 还需要设置图片渲染模式
tabBar.tintColor = UIColor.orangeColor()
// 2.创建导航控制器
let nav = UINavigationController()
nav.addChildViewController(home)
// 3.添加控制器到tabbarVC
addChildViewController(nav)
*/
addChildViewControllers()
}
/**
添加所有子控制
*/
func addChildViewControllers() {
addChildViewController(HomeTableViewController(), title: "首页", imageName: "tabbar_home")
addChildViewController(MessageTableViewController(), title: "消息", imageName: "tabbar_message_center")
addChildViewController(DiscoverTableViewController(), title: "发现", imageName: "tabbar_discover")
addChildViewController(ProfileTableViewController(), title: "我", imageName: "tabbar_profile")
}
/**
初始化子控制器
:param: childController 需要初始化的子控制器
:param: title 初始化的标题
:param: imageName 初始化的图片
*/
func addChildViewController(childController: UIViewController, title:String, imageName:String) {
// 1.从内像外设置, nav和tabbar都有
childController.title = title
childController.tabBarItem.image = UIImage(named: imageName)
childController.tabBarItem.selectedImage = UIImage(named: imageName + "_highlighted")
// 注意: Xocde7之前只有文字有效果, 还需要设置图片渲染模式
tabBar.tintColor = UIColor.orangeColor()
// 2.创建导航控制器
let nav = UINavigationController()
nav.addChildViewController(childController)
// 3.添加控制器到tabbarVC
addChildViewController(nav)
}
}