UITabBarController跟UINavigationController类似,UITabBarController也可以轻松地管理多个控制器,轻松完成控制器之间的切换,典型例子就是QQ、微信等应用。UITabBarController简单介绍中也有说过,为了便于管理控制器,iOS提供了2个比较特殊的控制器:UITabBarController控制器以及UINavigationController控制器。
UITabBarController添加控制器的方式有2种:
添加单个子控制器:
- (void)addChildViewController:(UIViewController *)childController;
设置子控制器数组:
property(nonatomic,copy) NSArray *viewControllers;
UITabBarButton里面显示什么内容,由对应子控制器的tabBarItem属性决定
UITabBarItem有以下属性影响着UITabBarButton的内容
1 //标题文字 2 @property(nonatomic,copy) NSString *title; 3 //图标 4 @property(nonatomic,retain) UIImage *image; 5 //选中时的图标 6 @property(nonatomic,retain) UIImage *selectedImage; 7 //提醒数字 8 @property(nonatomic,copy) NSString *badgeValue;
1 //1.创建窗口 2 UIWindow *window = [[UIWindow alloc] initWithFrame:[UIScreen mainScreen].bounds]; 3 4 //2.设置窗口的根控制器 为Tabbar控制器 5 6 // 2.1创建tabbar控制器 7 UITabBarController *tabbarVc = [[UITabBarController alloc] init]; 8 9 // 2.2设置子控制器 10 UIViewController *vc1 = [[UIViewController alloc] init]; 11 vc1.view.backgroundColor = [UIColor redColor]; 12 13 // 设置UITabbarButton的标题 14 vc1.tabBarItem.title = @"联系人"; 15 vc1.tabBarItem.image = [UIImage imageNamed:@"tab_buddy_nor"]; 16 vc1.tabBarItem.badgeValue = @"12"; 17 //[tabbarVc addChildViewController:vc1]; 18 19 UIViewController *vc2 = [[UIViewController alloc] init]; 20 vc2.view.backgroundColor = [UIColor greenColor]; 21 //[tabbarVc addChildViewController:vc2]; 22 vc2.tabBarItem.title = @"动态"; 23 vc2.tabBarItem.image = [UIImage imageNamed:@"tab_qworld_nor"]; 24 25 26 UIViewController *vc3 = [[UIViewController alloc] init]; 27 vc3.view.backgroundColor = [UIColor yellowColor]; 28 //[tabbarVc addChildViewController:vc3]; 29 vc3.tabBarItem.title = @"设置"; 30 vc3.tabBarItem.image = [UIImage imageNamed:@"tab_me_nor"]; 31 32 33 //一次性添加tabbar的子控制器 34 tabbarVc.viewControllers = @[vc1,vc2,vc3]; 35 //设置窗口的根控制器 36 window.rootViewController = tabbarVc; 37 38 // 3.设置窗口为主窗口并可见 39 [window makeKeyAndVisible]; 40 self.window = window;
最终效果: