iOS开篇——UI之UITabBarController

UITabBarController的创建与基本属性

  1 - (void)customTabbarController{
  2     
  3     //声明一个UITabBarController
  4     UITabBarController * tab = [[UITabBarController alloc]init];
  5     
  6     //设置tabBar是否透明
  7     tab.tabBar.translucent = YES;
  8     //设置tabBarController的代理
  9     tab.delegate = self;
 10     //设置背景图片
 11 //    tab.tabBar.backgroundImage = [UIImage imageNamed:@""];
 12     
 13 //    tab.tabBar.alpha =1;
 14 //    tab.tabBar.backgroundColor =
 15 //    设置样式
 16 //    tab.tabBar.barStyle = UIBarStyleDefault;
 17     /*
 18      typedef NS_ENUM(NSInteger, UIBarStyle) {
 19      UIBarStyleDefault          = 0,
 20      UIBarStyleBlack            = 1,
 21      
 22      UIBarStyleBlackOpaque      = 1, // Deprecated. Use UIBarStyleBlack
 23      UIBarStyleBlackTranslucent = 2, // Deprecated. Use UIBarStyleBlack and set the translucent property to YES
 24      } __TVOS_PROHIBITED;
 25      */
 26     
 27     //设置为根视图
 28     _window.rootViewController = tab;
 29     
 30     //先声明试图控制器对象
 31     FirstViewController * firstVC = [[FirstViewController alloc]init];
 32         //用系统创建tabBar样式
 33 //    firstVC.tabBarItem = [[UITabBarItem alloc]initWithTabBarSystemItem:UITabBarSystemItemFeatured tag:1];
 34     
 35     //使用标题 图片创建tabBar样式
 36     firstVC.tabBarItem = [[UITabBarItem alloc]initWithTitle:@"首页" image:[UIImage imageNamed:@"tabbar_account"] tag:1];
 37 //    [tab addChildViewController:firstVC];
 38 
 39     //设置提示 可以是中文 可以是数字 字符串
 40     firstVC.tabBarItem.badgeValue = @"1";
 41     //将firstVC设置为nav1的根视图
 42     UINavigationController * nav1 = [[UINavigationController alloc]initWithRootViewController:firstVC];
 43 
 44     
 45     
 46     SecondViewController * secondVC = [[SecondViewController alloc]init];
 47 //    secondVC.tabBarItem = [[UITabBarItem alloc]initWithTabBarSystemItem:UITabBarSystemItemBookmarks tag:2];
 48     secondVC.tabBarItem = [[UITabBarItem alloc]initWithTitle:@"" image:[[UIImage imageNamed:@"tabbar_appfree"]imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal] tag:2];
 49 //    [tab addChildViewController:secondVC];
 50     secondVC.tabBarItem.badgeValue = @"2";
 51     UINavigationController * nav2 = [[UINavigationController alloc]initWithRootViewController:secondVC];
 52     
 53     
 54     ThirdViewController * thirdVC = [[ThirdViewController alloc]init];
 55 //    thirdVC.tabBarItem = [[UITabBarItem alloc]initWithTabBarSystemItem:UITabBarSystemItemContacts tag:3];
 56     thirdVC.tabBarItem = [[UITabBarItem alloc]initWithTitle:@"图表" image:[UIImage imageNamed:@"tabbar_rank@2x"] selectedImage:[UIImage imageNamed:@"tabbar_rank_press@2x"]];
 57 //    [tab addChildViewController:thirdVC];
 58     UINavigationController * nav3 = [[UINavigationController alloc]initWithRootViewController:thirdVC];
 59     
 60     
 61     FourthViewController * fourthVC = [[FourthViewController alloc]init];
 62     fourthVC.tabBarItem = [[UITabBarItem alloc]initWithTabBarSystemItem:UITabBarSystemItemHistory tag:4];
 63 //    [tab addChildViewController:fourthVC];
 64     fourthVC.tabBarItem.badgeValue = @"3";
 65 //    fourthVC.title = @"hhehe";
 66 //    fourthVC.navigationItem.prompt = @"ooo";
 67     UINavigationController * nav4 = [[UINavigationController alloc]initWithRootViewController:fourthVC];
 68     
 69     
 70     
 71     //声明一个单例
 72     NSUserDefaults * ud = [NSUserDefaults standardUserDefaults];
 73     //找到key为selected的值
 74     NSUInteger index = [[ud objectForKey:@"selected"] integerValue];
 75     //设置tabBarController的索引值 (默认页面)
 76     tab.selectedIndex = index;
 77     
 78     
 79     //按数组顺序显示  初始是第一个
 80     //把试图控制器添加上去 此处添加的是navigationController
 81     tab.viewControllers = @[nav1,nav2,nav3,nav4];
 82     
 83 //    [tab addChildViewController:firstVC];
 84 //
 85 
 86 
 87 
 88     //系统样式
 89     /*
 90      typedef NS_ENUM(NSInteger, UITabBarSystemItem) {
 91      UITabBarSystemItemMore,
 92      UITabBarSystemItemFavorites,
 93      UITabBarSystemItemFeatured,
 94      UITabBarSystemItemTopRated,
 95      UITabBarSystemItemRecents,
 96      UITabBarSystemItemContacts,
 97      UITabBarSystemItemHistory,
 98      UITabBarSystemItemBookmarks,
 99      UITabBarSystemItemSearch,
100      UITabBarSystemItemDownloads,
101      UITabBarSystemItemMostRecent,
102      UITabBarSystemItemMostViewed,
103      };
104      */
105 }

 

再看看 协议UITabBarControllerDelegate中的代理方法

 1 //能否选择viewController
 2 - (BOOL)tabBarController:(UITabBarController *)tabBarController shouldSelectViewController:(UIViewController *)viewController{
 3     //第二个参数为点击的视图控制器
 4     
 5     //获取到tabBarController所有的视图控制器
 6     NSArray * array = tabBarController.viewControllers;
 7     
 8     NSUInteger index = [array indexOfObject:viewController];
 9     NSLog(@"%lu",index);
10     
11     //声明一个单例
12     NSUserDefaults * ud = [NSUserDefaults standardUserDefaults];
13     [ud setObject:[NSNumber numberWithInteger:index] forKey:@"selected"];
14     //写入磁盘
15     [ud synchronize];
16 
17     return YES;
18 }
19 //点击之后
20 - (void)tabBarController:(UITabBarController *)tabBarController didSelectViewController:(UIViewController *)viewController{
21     
22 }

 

转载于:https://www.cnblogs.com/gwkiOS/p/5005769.html

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值