我的iOS学习历程 - UITabBarViewController

今天学习的是另外一种控制器: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
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值