1 #import "AppDelegate.h" 2 #import "FrisrtViewController.h" 3 #import "SecondViewController.h" 4 #import "ThirdViewController.h" 5 #import "FourthViewController.h" 6 #import "FivethViewController.h" 7 #import "SixthViewController.h" 8 @interface AppDelegate ()<UITabBarControllerDelegate> 9 10 @end 11 12 @implementation AppDelegate 13 14 15 - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { 16 // Override point for customization after application launch. 17 self.window = [[UIWindow alloc] initWithFrame:[UIScreen mainScreen].bounds]; 18 self.window.backgroundColor = [UIColor whiteColor]; 19 [self.window makeKeyAndVisible]; 20 21 //第一步:创建需要管理的视图对象 22 //创建三个视图对象 23 FrisrtViewController *firstVC = [[FrisrtViewController alloc] init]; 24 SecondViewController *secondVC = [[SecondViewController alloc] init]; 25 ThirdViewController *thirdVC = [[ThirdViewController alloc] init]; 26 FourthViewController *fourthVC = [[FourthViewController alloc] init]; 27 FivethViewController *fivethVC = [[FivethViewController alloc] init]; 28 SixthViewController *sixthVC = [[SixthViewController alloc] init]; 29 30 #pragma mark - 导航控制器 31 //创建导航控制器,控制第二个视图控制器 32 // UINavigationController *naVC = [[UINavigationController alloc] initWithRootViewController:secondVC]; 33 //naVC.navigationBar.barTintColor = [UIColor magentaColor]; 34 35 //设置tabBar的title 36 firstVC.tabBarItem.title = @"first"; 37 secondVC.tabBarItem.title = @"second"; 38 thirdVC.tabBarItem.title = @"third"; 39 fourthVC.tabBarItem.title = @"fourth"; 40 fivethVC.tabBarItem.title = @"fiveth"; 41 sixthVC.tabBarItem.title = @"sixth"; 42 //设置tabBar的样式 43 //参数1:是一个枚举值,系统的tabBar的样式,参数2:标记点击按钮的tag值 44 firstVC.tabBarItem = [[UITabBarItem alloc] initWithTabBarSystemItem:UITabBarSystemItemSearch tag:100]; 45 46 //设置tabBar的样式采取自定义外观 47 //未选中状态下的图片 48 UIImage *imageUnSelected = [UIImage imageNamed:@"carGary.png"]; 49 //图片需要保持原有图片的状态 50 imageUnSelected = [imageUnSelected imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal]; 51 //选中状态下的图片设置 52 UIImage *imageSelected = [UIImage imageNamed:@"carRed.png"]; 53 imageSelected = [imageSelected imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal]; 54 55 //设置tabBarItem的外观 56 //参数1:设置tabBarItem的title,参数2:设置原本的image 参数3:设置选中状态下的Image 57 secondVC.tabBarItem = [[UITabBarItem alloc] initWithTitle:@"第二页" image:imageUnSelected selectedImage:imageSelected]; 58 59 60 UIImage *thirdUnSelected = [UIImage imageNamed:@"findGray.png"]; 61 thirdUnSelected = [thirdUnSelected imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal]; 62 UIImage *thirdSelected = [UIImage imageNamed:@"findRed.png"]; 63 thirdSelected = [thirdSelected imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal]; 64 thirdVC.tabBarItem = [[UITabBarItem alloc] initWithTitle:@"第三页" image:thirdUnSelected selectedImage:thirdSelected]; 65 66 67 UIImage *firstUnSelectedimage = [UIImage imageNamed:@"userGray.png"]; 68 firstUnSelectedimage = [firstUnSelectedimage imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal]; 69 UIImage *firstSelectedimage = [UIImage imageNamed:@"userRed.png"]; 70 firstSelectedimage = [firstSelectedimage imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal]; 71 firstVC.tabBarItem = [[UITabBarItem alloc] initWithTitle:@"第一页" image:firstUnSelectedimage selectedImage:firstSelectedimage]; 72 73 74 UIImage *fourthUnSelectedimage = [UIImage imageNamed:@"planeGary.png"]; 75 fourthUnSelectedimage = [fourthUnSelectedimage imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal]; 76 UIImage *fourthSelectedimage = [UIImage imageNamed:@"planeRed.png"]; 77 fourthSelectedimage = [fourthSelectedimage imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal]; 78 fourthVC.tabBarItem = [[UITabBarItem alloc] initWithTitle:@"第四页" image:fourthUnSelectedimage selectedImage:fourthSelectedimage]; 79 80 fivethVC.tabBarItem = [[UITabBarItem alloc] initWithTabBarSystemItem:UITabBarSystemItemDownloads tag:101]; 81 sixthVC.tabBarItem = [[UITabBarItem alloc] initWithTabBarSystemItem:UITabBarSystemItemHistory tag:102]; 82 //UITabBar默认最多显示五个按钮,如果多与五个,最后一个会出现More的标志,点击进入时剩下的controller对象 83 84 //第二步:创建UITabBarController对象来管理各个视图 85 UITabBarController *tabBarVC = [[UITabBarController alloc] init]; 86 87 88 //第三步:需要将被管理的视图控制器对象放在视图数组属性中 89 90 tabBarVC.viewControllers = @[firstVC ,secondVC,thirdVC,fourthVC,fivethVC,sixthVC]; 91 //设置进入应用默认选中第几个 92 tabBarVC.selectedIndex = 2; 93 94 // 95 UINavigationController *naVC = [[UINavigationController alloc] initWithRootViewController:tabBarVC]; 96 97 98 //第四步:将window的根视图控制器交给tabBarController进行管理 99 self.window.rootViewController = naVC; 100 101 #pragma mark - UITabBar属性的相关设置 102 //tintColor是tabBar上内容颜色的设置(选中状态的一个颜色) 103 tabBarVC.tabBar.tintColor = [UIColor blackColor]; 104 //设置tabBar的背景颜色 105 tabBarVC.tabBar.barTintColor = [UIColor cyanColor]; 106 //设置tabBar的透明度 107 tabBarVC.tabBar.translucent = YES; 108 #pragma mark - UITabBarItem的一些属性的相关设置 109 110 //设置未读消息数目 111 firstVC.tabBarItem.badgeValue = @"99"; 112 secondVC.tabBarItem.badgeValue = @"未读"; 113 thirdVC.tabBarItem.badgeValue = @"45"; 114 fourthVC.tabBarItem.badgeValue = @"55"; 115 fivethVC.tabBarItem.badgeValue = @"66"; 116 sixthVC.tabBarItem.badgeValue = @"77"; 117 118 #pragma mark - 代理 119 120 tabBarVC.delegate = self; 121 122 //NavigationBar的默认高度是44(竖屏),TabBar的默认高度是49 123 124 #pragma mark - UIAppearance设置外观,自iOS8之后才有的方法 125 126 //设置全局外观 127 //通过[UITabBar appearance]找到UITabBar,从而实现设置其外观 128 //注意了:如果使用appearance去设置相应控件的外观,应该在AppDelegate中进行设置 129 [[UITabBar appearance] setBarTintColor:[UIColor redColor]]; 130 [[UITabBar appearance] setTintColor:[UIColor whiteColor]]; 131 132 //设置导航栏 133 134 [[UINavigationBar appearance] setBarTintColor:[UIColor brownColor]]; 135 [[UINavigationBar appearance] setTintColor:[UIColor lightGrayColor]]; 136 137 //设置导航栏字体 138 [[UINavigationBar appearance] setTitleTextAttributes:[NSDictionary dictionaryWithObjectsAndKeys:[UIColor magentaColor],NSForegroundColorAttributeName,[UIFont systemFontOfSize:18],NSFontAttributeName, nil]]; 139 140 141 142 return YES; 143 } 144 145 #pragma mark - 代理方法 146 //当tabBar上面的每一个按钮被选中的时候,触发此方法 147 -(void)tabBarController:(UITabBarController *)tabBarController didSelectViewController:(UIViewController *)viewController 148 { 149 viewController.tabBarItem.badgeValue = nil; 150 //查看当前那个按钮被选中 151 NSLog(@"%@",[viewController class]); 152 }