UITabarController了解

讲解方法addChildViewController####

controller.title = title;
controller.tabBarItem.image = [UIImage imageNamed:image];
controller.tabBarItem.selectedImage = [[UIImage imageNamed:selectedImage] imageWithRenderingMode:(UIImageRenderingModeAlwaysOriginal)];
NavgationController *navController = [[NavgationController alloc] initWithRootViewController:controller];
//添加VC
[self addChildViewController:navController];

另外一个中添加VC的方式:

self.viewControllers = @[vc1, vc2,vc3];

在我们向UITabController添加vc数组的时候,在还没有执行ViewWillAppear:方法的时候,你可以查看一下self.tabar.subviews,在此时subviews.count == 0,也就是说现在系统还没有创建在tabar上创建UIBarbutton,那么问题是系统是在什么时候在Ttabar上创建相对应的UIBarButton呢? 答案是在系统执行了viewWillAppear,如果你写的控制器是集成UITabController,那你在重写方法viewWillAppear的时候,是有在调用了[Super viewWillAppear]的时候那么你就可以在在Tabar上查看到系统为你创建的UIBarButton

创建自定义Tabar####

怎么样创建一个自定义的Tabar,并且还能保证系统原本的风格,有一个方法就是偷换系统的Tabar,把系统自己创建的tabar,变换成自己自定的一个View,可能你查看API@property(nonatomic,readonly) UITabBar *tabBar,可以看出来这个属性是一个只读的,那么我们应该怎么样赋值呢。那么我就应该用到KVC这项技术了[self setValue:tabBar forKey:@"tabBar"];

但是有几点使我们必须注意的,我们应该在什么时候替换系统的tabar,根据第上面部分的讲解,我们知道我们应该在方法viewWillAppear之前进行替换

改错####

我们在代码运行的过程中,我们可以看出来在tabar中的subview的类型是UITabBarButton,我在上面一直说的是UIBarButton
Tabar默认高度是49

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 前言 很多时候,系统原生的 UITabBar 并不能满足我们的需求,譬如我们想要给图标做动态的改变,或者比较炫一点...
    四月_Hsu阅读 10,476评论 1 6
  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 14,196评论 4 61
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 175,233评论 25 709
  • 昨天办公室的茶真有效,嘎娘凌晨3点就醒了。不知过了多久 ,数了多少只羊后,才又进入似睡非睡的状态。 朦胧中,是个月...
    a宫雨阅读 1,664评论 0 2
  • 生活就像一块巧克力,有苦也有甜,不管是遇到好事坏事都是我们人生马拉松上的风景,坚持自己信仰,坚持自己配速和...
    秋色波波阅读 1,703评论 0 2