我的iOS学习历程 - UITabBarViewController

来源:互联网 发布:matlab迭代算法 编辑:程序博客网 时间:2024/05/16 02:17

今天学习的是另外一种控制器:UITabBarViewController

同样是控制一组控制器的,以后一般我们用他来控制UINavigationController,来控制其他的视图控制器.

1.初始化

创建一个UITabBarController的子类
把UITabBarController 作为window的根视图控制器 显示出来

RootTabBarViewController *rootVC = [[RootTabBarViewController alloc] init];    //  设置成window的根视图控制器    self.window.rootViewController = rootVC;

2.设置标题(是分别设置控制的UINavigationController,这里都以一个为例)

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

3.设置图片以及设置图片的表现方式(如原有颜色等)

UIImageRenderingModeAlwaysOriginal (绘制出原始图片,图片颜色等不变默认显示轮廓和背景色)

oneVC.tabBarItem.image = [[UIImage imageNamed:@"82-dogpaw"] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];

4.设置选中的图片

oneVC.tabBarItem.selectedImage = [[UIImage imageNamed:@"28-star"] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];

5.设置tabBarItem上的红色提示按钮

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

6.显示到TabBarController上面(需要添加到 viewController的数组中)

self.viewControllers = @[oneNav, twoNav, threeNav, fourNav, fiveNav, sixNav];

7.设置bar的颜色

self.tabBar.barTintColor = [UIColor blueColor];

8.设置bar填充色

    self.tabBar.tintColor = [UIColor redColor];

9.设置bar的背景图片

self.tabBar.backgroundImage = [UIImage imageNamed:@"tabBar"];

10.设置默认选中

self.selectedIndex = 1;

UITabBarViewController的代理方法:

1.可以指定哪个控制器不让点击

- (BOOL)tabBarController:(UITabBarController *)tabBarController shouldSelectViewController:(UIViewController *)viewController {    //  先取出 不让点击的控制器    UINavigationController *nav = self.viewControllers[1];    //  如果选中的控制器是你不想让用户点击的    //  那么返回NO    if (viewController == nav) {        return NO;    } else {        return YES;    }}

2.选中页面时触发的方法

- (void)tabBarController:(UITabBarController *)tabBarController didSelectViewController:(UIViewController *)viewController {    //  打印选中的索引    NSLog(@"%ld",self.selectedIndex);    //  选中时 把红色提示去除    viewController.tabBarItem.badgeValue = nil;}

3.控制more的代理方法(有三个使用的方法)

- (void)tabBarController:(UITabBarController *)tabBarController willBeginCustomizingViewControllers:(NSArray<__kindof UIViewController *> *)viewControllers {    NSLog(@"将要开始编辑more");}- (void)tabBarController:(UITabBarController *)tabBarController willEndCustomizingViewControllers:(NSArray<__kindof UIViewController *> *)viewControllers changed:(BOOL)changed {    NSLog(@"将要结束编辑more");}- (void)tabBarController:(UITabBarController *)tabBarController didEndCustomizingViewControllers:(NSArray<__kindof UIViewController *> *)viewControllers changed:(BOOL)changed {    NSLog(@"已经结束编辑");}
0 0