ios-UI基础控件-UITabBarController的详细说明

ios-UI基础控件-UITabBarController的详细说明_第1张图片
像我这么帅的,一般都是主角哦

UITabBarController的创建步骤

UITabBarController 和UINavigationController类似(可以相互嵌套使用),UITabBarController也可以管理多个控制器,完成控制器之间的切换

步骤如下:

  1. 创建初始化UITabBarController
  2. 设置UIWindow的rootViewController为UITabBarController
  3. 创建相应的子控制器(viewcontroller)
  4. 把子控制器添加到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:@"[email protected]"];
    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;

*效果如图所示


ios-UI基础控件-UITabBarController的详细说明_第2张图片
示例图

图片不被渲染,保持图片本身样式

UIImage *selectedImage = [UIImage imageNamed:@"[email protected]"]; 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]];

你可能感兴趣的:(ios-UI基础控件-UITabBarController的详细说明)