UI进阶--UITabBarController简单介绍

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;
具体示例代码(在AppDelegate.m文件中):
 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;

最终效果:

原文地址:https://www.cnblogs.com/xiaomoge/p/4201389.html