UITabBarController的创建步骤
UITabBarController 和UINavigationController类似(可以相互嵌套使用),UITabBarController也可以管理多个控制器,完成控制器之间的切换
步骤如下:
- 创建初始化UITabBarController
- 设置UIWindow的rootViewController为UITabBarController
- 创建相应的子控制器(viewcontroller)
- 把子控制器添加到UITabBarController
代码示例
- 这里仅列出三个controller控制器
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
self.window = [[UIWindow alloc] initWithFrame:[UIScreen mainScreen].bounds];
//创建UITabBarController控制器
UITabBarController *tabVc = [UITabBarController new];
//创建第一个控制器
FirstViewController *firstVc = [FirstViewController new];
//设置第一个控制器的tabBarItem的样式
//如果图片出现和原有样子较大的差别,那么设置为不被渲染
UIImage *selectedImage = [UIImage imageNamed:@"carRed@2x.png"];
selectedImage = [selectedImage imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];
firstVc.tabBarItem = [[UITabBarItem alloc] initWithTitle:@"车型" image:[UIImage imageNamed:@"carGary.png" ]selectedImage:selectedImage];
firstVc.tabBarItem.badgeValue=@"123";
//将视图控制器添加到导航控制器中
UINavigationController *n1 = [[UINavigationController alloc] initWithRootViewController:firstVc];
//创建第二个视图控制器
SecondViewController *secondVc = [SecondViewController new];
UINavigationController *n2 = [[UINavigationController alloc] initWithRootViewController:secondVc];
//设置第二个控制器的tabBarItem的样式
secondVc.tabBarItem.title=@"联系人";
secondVc.tabBarItem = [[UITabBarItem alloc] initWithTitle:@"查找" image:[UIImage imageNamed:@"findGray.png" ]selectedImage:[UIImage imageNamed:@"findRed.png"]];
//创建第三个视图控制器
ThirdViewController *thirdVc = [ThirdViewController new];
UINavigationController *n3 = [[UINavigationController alloc] initWithRootViewController:thirdVc];
//设置第三个控制器的tabBarItem的样式
thirdVc.tabBarItem = [[UITabBarItem alloc] initWithTitle:@"计划" image:[UIImage imageNamed:@"planeGary.png" ]selectedImage:[UIImage imageNamed:@"planeRed.png"]];
//将所有的视图控制器添加到tabVc的子视图控制器中
tabVc.viewControllers = @[n1, n2, n3];
//将tabVc设置为根视图控制器
self.window.rootViewController = tabVc;
self.window.backgroundColor = [UIColor whiteColor];
}
tabBar的常用属性
//字体颜色
tabVc.tabBar.tintColor = [UIColor redColor];
//背景颜色
tabVc.tabBar.barTintColor = [UIColor yellowColor];
//默认选择
tabVc.selectedIndex = 2;
//tabBar上透明度
tabVc.tabBar.translucent = YES;
*效果如图所示
示例图
图片不被渲染,保持图片本身样式
UIImage *selectedImage = [UIImage imageNamed:@"carRed@2x.png"]; selectedImage = [selectedImage imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];
实现协议中的方法(< UITabBarControllerDelegate >)
-(void)tabBarController:(UITabBarController *)tabBarController didSelectViewController:(UIViewController *)viewController {
NSLog(@"%ld",tabBarController.selectedIndex);
}
设置tabBar全局外观的方法
appearance 本质是系统封装好的单例, 小数据情况下,没有必要使用单例,单例是全局的,它的生命周期和程序一样长,如果使用appearance去修改响应空间的外观,应该在APPDeleagte中进行设置,否则很容易出现无效的情况
[[UITabBar appearance] setBarTintColor:[UIColor cyanColor]];
[[UITabBar appearance] setTintColor:[UIColor redColor]];
[[UINavigationBar appearance] setTintColor:[UIColor yellowColor]];
网友评论