标签视图控制器 UITabBarController [高度: 49]

导航栏高度: 44 (navigationBar)

导航栏上边: 20 

标签栏高度: 49 (tabBar)




 //标签视图控制器(UITabBarController) : 主要用来管理具有不同功能并且属于同一层级结构的多个视图控制器. (比如: 电影推荐页面 -> 演出页面)

 

区别: 导航视图控制器(UINavigationController): 用来管理具有相同功能, 并且具有上下级关系的多个视图控制器, 负责页面之间的跳转.(比如: 电影推荐页面 -> 电影详情页面)



   

    //特点: 可以将多个视图控制器模块化, 便于管理和使用.

    

    UITabBarController *firstaTabBarController = [[UITabBarController alloc]init];

    

    //指定当前标签视图控制器的代理人

    firstaTabBarController.delegate = self;

    

    //设置标签栏图片的渲染颜色

    firstaTabBarController.tabBar.tintColor = [UIColor purpleColor];


    

    

    

    

    FirstViewController *firstVC = [[FirstViewController alloc]init];

    

    UINavigationController *firstNav = [[UINavigationController alloc]initWithRootViewController:firstVC];


    //设置标题

    firstNav.tabBarItem.title = @"首页";

    

    //设置图片

    firstNav.tabBarItem.image = [UIImage imageNamed:@"27-planet"];

    

    //角标 属性: badgeValue(NSString)

    firstNav.tabBarItem.badgeValue = @"99+";

    

    SecondViewController *secondVC = [[SecondViewController alloc]init];

   

    UINavigationController *secondNav = [[UINavigationController alloc]initWithRootViewController:secondVC];

    

//    secondVC.tabBarItem.title = @"通讯录";

//    

//    secondVC.tabBarItem.image = [UIImage imageNamed:@"32-iphone"];

    

    //自定义tabBarItem

    //1. 以系统规定样式和tag 来初始化UITabBarItem

    secondNav.tabBarItem = [[UITabBarItem alloc]initWithTabBarSystemItem:UITabBarSystemItemFavorites tag:1000];

    

    

    ThirdViewController *thirdVC = [[ThirdViewController alloc]init];

    

    UINavigationController *thirdNav = [[UINavigationController alloc]initWithRootViewController:thirdVC];

    

//    thirdVC.tabBarItem.title = @"朋友圈";

//    

//    thirdVC.tabBarItem.image = [UIImage imageNamed:@"93-thermometer"];

    

    //2. 以标题, 图片和选中状态下的图片来初始化UITabBarItem

    thirdNav.tabBarItem = [[UITabBarItem alloc]initWithTitle:@"第三页" image:[UIImage imageNamed:@"91-beaker2"] selectedImage:[UIImage imageNamed:@"77-ekg"]];

    

    

    FourthViewController *fourVC = [[FourthViewController alloc]init];

    

    UINavigationController *fourNav = [[UINavigationController alloc]initWithRootViewController:fourVC];

    

//    fourNav.tabBarItem.title = @"第四";

//    

//    fourNav.tabBarItem.image = [UIImage imageNamed:@"94-pill"];

    

    

    //3.以标题, 图片和tag值类初始化UITabBarItem

    fourNav.tabBarItem = [[UITabBarItem alloc]initWithTitle:@"星期四" image:[UIImage imageNamed:@"80-shopping-cart"] tag:1001];

    

    

    

    

    FifthViewController *fifthVC = [[FifthViewController alloc]init];

    

    UINavigationController *fifthNav = [[UINavigationController alloc]initWithRootViewController:fifthVC];

    

//    fifthNav.tabBarItem.title = @"第五";

//    

//    fifthNav.tabBarItem.image = [UIImage imageNamed:@"73-radar"];

    

    fifthNav.tabBarItem = [[UITabBarItem alloc]initWithTitle:@"第五个" image:[UIImage imageNamed:@"40-inbox"] selectedImage:[UIImage imageNamed:@"49-battery"]];

    

    

    

    SixthViewController *sixthVC = [[SixthViewController alloc]init];

    

    sixthVC.tabBarItem = [[UITabBarItem alloc]initWithTabBarSystemItem:UITabBarSystemItemHistory tag:1002];

    

    

    //设置标签视图控制器管理的视图控制器

    firstaTabBarController.viewControllers = @[firstNav, secondNav, thirdNav, fourNav, fifthNav, sixthVC];

    

    

    //指定当前标签视图控制器选中的模块

    

    //需要在viewController都添加到视图控制器数组中后, 才能显示

    firstaTabBarController.selectedIndex = 2;

    

    

    //设置标签栏的背景颜色  barTintColor

//    firstaTabBarController.tabBar.barTintColor = [UIColor grayColor];

    

    

    

    self.window.rootViewController = firstaTabBarController;

    

#warning 注意: 使用UIAppearance一定要在视图显示之前设置, 通常我们使用UIAppearance设置统一的导航条或者状态条等.

    

    //设置所有的navigationBar的统一样式

    [[UINavigationBar appearance]setBarTintColor:[UIColor cyanColor]];

    

    

    //一般将导航栏和标签栏设置成统一色调.

    

    //设置标签栏的统一样式

    [[UITabBar appearance]setBarTintColor:[UIColor grayColor]];

    

//    //指定某个类的导航栏样式

//    //不好用

//    [[UINavigationBar appearanceWhenContainedIn:[FirstViewController class], nil]setBarTintColor:[UIColor cyanColor]];

//    

//    

//    

    

    

    

    

    

    [firstaTabBarController release];

    [firstVC release];

    [secondVC release];

    [thirdVC release];

    [fourVC release];

    [fifthVC release];

    [sixthVC release];

    [_window release];

    

    [self.window makeKeyAndVisible];

    return YES;

}



//viewController 当前选中的Controller

#warning 注意: 标签视图控制器默认只能容纳5个模块(视图控制器), 如果多于5, 那么会出现more, 点击more, 会出现一个默认的tableView, 用来显示多余的模块

-(void)tabBarController:(UITabBarController *)tabBarController didSelectViewController:(UIViewController *)viewController

{

    //当前点击的视图的角标清零

    viewController.tabBarItem.badgeValue = nil;

    

    NSLog(@"%@", viewController);

    

}



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值