UITabBarController
标签视图控制器
UITabBar
标签,包含多个UITabBarItem,每一个UITabBarItem对应一个UIViewController,UITabBar的高度是49。系统最多只显示5个UITabBarItem,当UITabBarItem超过5个时系统会自动添加一个更多按钮。
UIAppearance
如果想通过一件设定所有导航视图控制器的颜色,类似于QQ的一键换肤操作,可以通过UIAppearance协议来进行操作。
FirstViewController *fisrtVC = [[FirstViewController alloc] init];
UINavigationController *firstNaVC = [[UINavigationController alloc] initWithRootViewController:fisrtVC];
firstNaVC.tabBarItem = [[UITabBarItem alloc] initWithTabBarSystemItem:UITabBarSystemItemBookmarks tag:101];
firstNaVC.tabBarItem.badgeValue = @"10";
SecondViewController *secondVC = [[SecondViewController alloc] init];
UINavigationController *secondNaVC = [[UINavigationController alloc] initWithRootViewController:secondVC];
secondNaVC.tabBarItem = [[UITabBarItem alloc] initWithTabBarSystemItem:UITabBarSystemItemContacts tag:102];
secondNaVC.tabBarItem.badgeValue = @"未读";
ThirdViewController *thirdVC = [[ThirdViewController alloc] init];
UINavigationController *thirdNaVC = [[UINavigationController alloc] initWithRootViewController:thirdVC];
thirdNaVC.tabBarItem = [[UITabBarItem alloc] initWithTabBarSystemItem:UITabBarSystemItemFavorites tag:103];
thirdNaVC.tabBarItem.badgeValue = @"警告";
// 1.创建UITabBarController
UITabBarController *tabBarVC = [[UITabBarController alloc] init];
// 2.将tabBarVC管理的视图控制器放到一个数组中
NSArray *VCs = [NSArray arrayWithObjects:firstNaVC, secondNaVC, thirdNaVC, nil];
// 3.设置tabBarVC的子视图控制器
tabBarVC.viewControllers = VCs;
self.window.rootViewController = tabBarVC;
// 设置tabBarVC的属性
tabBarVC.tabBar.tintColor = [UIColor redColor];// 设置选中颜色
tabBarVC.tabBar.backgroundColor = [UIColor lightGrayColor];// 设置背景颜色
tabBarVC.tabBar.translucent = YES;// 是否半透明,默认为YES
// 设置全局外观,设置全局外观最好在appDelegate里,否则会无效
[[UITabBar appearance] setBarTintColor:[UIColor cyanColor]];// 设置UITabBar背景颜色
[[UITabBar appearance] setTintColor:[UIColor brownColor]];// 设置UITabBar样式
[[UINavigationBar appearance] setBarTintColor:[UIColor lightGrayColor]];// 设置UINavigationBar外观颜色
[[UINavigationBar appearance] setTitleTextAttributes:[NSDictionary dictionaryWithObjectsAndKeys:[UIColor redColor], NSForegroundColorAttributeName, [UIFont systemFontOfSize:17], NSFontAttributeName, nil]];// 设置UINavigationBar字体属性
- UITabBarController、UINavigationController、UITableViewController通常都是组合出现,这种布局方式特别常见。
- UITabBarController可以嵌套UINavigationController。
- UITabBarController也可以模态UINavigationController。