一.直接初始化分栏控制器
UITabBarController *navigationBar = [[UITabBarController alloc]init];
二.用一个比较适合多个分栏的方法去创建一个分栏控制器1.先创建几个不同的类 可以有继承关系 也可以没有
2.具体代码
创建一个数组 数组放的是第一步创建的类名 以字符串的格式存放的
NSArray *className = @[@"BAD_InformationViewController",@"BAD_TreasureViewController",@"BAD_MineViewController",@"BAD_MoreViewController"];
定义一个可变数组
NSMutableArray *classNames = [NSMutableArray array];
用foreign循环 去遍历类名数组
for (NSString *name in className) {
初始化一个导航栏控制器 并且把数组里的字符串转换成类名后 并且初始化成对象来作为导航栏控制器的根控制器 重点语句
UINavigationController *navigation = [[UINavigationController alloc]initWithRootViewController:[[NSClassFromString(name) alloc]init]];
把所用的导航栏控制器的对象 放在可变数组里
[classNames addObject:navigation];
}
初始化一个分栏控制器
UITabBarController *navigationBar = [[UITabBarController alloc]init];
把放有导航栏控制器
navigationBar.viewControllers = classNames;
定义数组 放的是分栏的每个栏在下边显示的名字
NSArray *nameList = @[@"资讯",@"百宝箱",@"我的",@"更多"];
图片数组 里面盛放的是 分栏下边的图标
NSArray *imageList = @[@"infor@2x",@"box@2x",@"mine@2x",@"more@2x"];
用for循环 把名字和图标都放上去
for (int i=0; i<className.count; i++) {
初始化一个普通的控制器对象
UIViewController *controller = [[UIViewController alloc]init];
用这个对象去接收分栏控制器里的每一个栏
controller = navigationBar.viewControllers[i];
给每个栏赋值名字
controller.tabBarItem.title = nameList[i];
给每个栏赋值图标
controller.tabBarItem.image = [UIImage imageNamed:imageList[i]];
}
设置默认选中哪一栏
navigationBar.selectedIndex = 1;
设置图标显示的颜色
navigationBar.tabBar.tintColor = [UIColor colorWithRed:1.000 green:0.188 blue:0.165 alpha:1.000];
把分栏控制器作为窗口的根控制器
self.window.rootViewController = navigationBar;