选项卡控制器是几乎所有APP都会用到的控制器。主要涉及到,子控制器,title,徽章值,选中时图片,未选中时图片等。我们通过一个demo一起看一下可能用到的属性和方法,首先准备a b c三个子控制器。然后在appDelegate中写如下代码
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
self.window = [[UIWindow alloc]initWithFrame:[UIScreen mainScreen].bounds];
//创建选项卡控制器
UITabBarController *tabBarController = [[UITabBarController alloc]init];
//创建 选项卡控制器 管理的 子控制器 并 添加到选项卡控制器中
AViewController *avc = [[AViewController alloc]init];
BViewController *bvc = [[BViewController alloc]initWithNibName:@"BViewController" bundle:nil];
UINavigationController *cNavi = [[UINavigationController alloc]initWithRootViewController:[[CViewController alloc]initWithNibName:@"BViewController" bundle:nil]];
//设置title
cNavi.tabBarItem.title = @"C视图";
avc.title = @"A视图";
bvc.title = @"B视图";
//设置徽章值
cNavi.tabBarItem.badgeValue = @"30";
avc.tabBarItem.badgeValue=@"50";
bvc.tabBarItem.badgeValue = @"100";
//设置tabbar的选项图片
avc.tabBarItem.image = [UIImage imageNamed:@"line_bell"];
//通过image对象 生成一个 不受tintColor 影响的 iamge对象
UIImage *image = [[UIImage imageNamed:@"full_bell"]imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];
avc.tabBarItem.selectedImage = image;
// 第一种方法:添加3个控制器到tabBar
// [tabBarController addChildViewController:avc];
// [tabBarController addChildViewController:bvc];
// [tabBarController addChildViewController:cNavi];
// 第二种方法:添加3个控制器到tabBar
tabBarController.viewControllers = @[avc, bvc, cNavi];
// //设置当前是第几页
tabBarController.selectedIndex = 0;
self.window.rootViewController = tabBarController;
[self.window makeKeyAndVisible];
return YES;
}
如果需要清除徽章,例如点击到B界面就要清除徽章。就在B界面的viewdidload中添加代码:
self.tabBarItem.badgeValue = nil;
效果如下图: