UITabBarController
UITabBarController 用来管理具有并列关系的视图控制器, (包括 UINavigationController 和 UIViewController), 多个界面同时存在
UITabBarController的相关属性
//初始化三个UIViewController, 一个 UINavigationController, 一个 UITabBarController
//这几个视图控制器之间的关系是: UITabBarController 管理 FirstViewController 和 UINavigationController
//UINavigationController 的根视图控制器是 SecondViewController
//在SecondViewController 中可以跳转到 DetailViewController
FirstViewController *firstVC = [[FirstViewController alloc] init];
SecondViewController *secondVC = [[SecondViewController alloc] init];
DetailViewController *detailVC = [[DetailViewController alloc] init];
UINavigationController *secondNVC = [[UINavigationController alloc] init];
UITabBarController *tabBarVC = [[UITabBarController alloc] init];
- 配置标签视图控制器所管理的多个视图控制器
NSArray *controllerArray = @[firstVC, secondVC, thirdNVC, forthVC, fifthVC, sixthVC];
tabBarVC.viewControllers = controllerArray; - 修改标签栏颜色
tabBarVC.tabBar.barTintColor = [UIColor whiteColor];
- 修改标签栏的渲染颜色(文字颜色)
tabBarVC.tabBar.tintColor = [UIColor orangeColor];
- 设置默认选择的标签(标签的索引从 0 开始)
tabBarVC.selectedIndex = 1;
- 设置默认选择的视图控制器
tabBarVC.selectedViewController = firstVC;
- 设置背景颜色
tabBarVC.tabBar.backgroundImage = [UIImage imageNamed:@"320x49"];
- 设置某一标签的标题
firstVC.tabBarItem.title = @"消息";
- 设置某一标签的图片
firstVC.tabBarItem.image = [UIImage imageNamed:@"tabbar_mainframe"];
- 设置某一标签的角标
firstVC.tabBarItem.badgeValue = @"New";
secondVC.tabBarItem.badgeValue = @"1"; - 设置某一标签选中之后的图片
firstVC.tabBarItem. selectedImage = [UIImage imageNamed:@"tabbar_discover"];
- 当在 secondNVC 中要跳转到 detailVC 时隐藏 TabBarController
//在 secondVC 中有一个 Button , 点击 Button 会跳转到 detailVC 中, 在 detailVC 中隐藏 TarBarController
//下面是 Button 的响应方法
-(void)handlePushBtn:(UIButton *)sender {
DetailViewController *detailVC = [[DetailViewController alloc] init];
//当push 到下一界面时隐藏标签栏
detailVC.hidesBottomBarWhenPushed = YES;
[self.navigationController pushViewController:detailVC animated:YES
];
[detailVC release];
}
UITabBarControllerDelegate的相关方法
- 询问标签是否被选中
- (BOOL)tabBarController:(UITabBarController )tabBarController shouldSelectViewController:(UIViewController )viewController;
- 当标签选中之后触发
- (void)tabBarController:(UITabBarController )tabBarController didSelectViewController:(UIViewController )viewController;
- 将要开始自定义标签视图控制器所管理的多个视图控制器时触发(点击 more 中的 Edit 按钮, 将要开始编辑标签时触发)
- (void)tabBarController:(UITabBarController )tabBarController willBeginCustomizingViewControllers:(NSArray )viewControllers;
- 完成标签栏编辑时触发
- (void)tabBarController:(UITabBarController )tabBarController didEndCustomizingViewControllers:(NSArray )viewControllers changed:(BOOL)changed;