iOS 与前端iOS Developer程序员

UITabarController了解

2017-05-10  本文已影响112人  学习路上一个远行者

讲解方法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

上一篇下一篇

猜你喜欢

热点阅读