我现在学到可分栏控制器,UITabBarController.我总结了它的层次有,UITabBarController控制并且只有以个UITanBat(他是一个UIIView的子类),UITabBar他有控制着多个UIViewController,而且每个UIViewController在上面添加的着很多的UITabBarItem。
UITabBarItem上又有很多的实例化的方法1.
[UITabBarItem alloc]initWithTabBarSystemItem:<#(UITabBarSystemItem)#> tag:<#(NSInteger)#>他是个系统自带的实例化方法,里面有很多苹果打包的很多tabBar的风格;而主要讲下面两种实例化方法的不同
方法一:这是ios7.0之前的方法,很多视频是讲的是这种方法
[UITabBarItem alloc]initWithTitle:<#(NSString *)#> image:<#(UIImage *)#> tag:<#(NSInteger)#>
但是如果在ios7.0之后 ,Xcode他默认的自定义的图标是灰色的或者是背景是灰色例如: 这种图片是系统可以识别的如果是其他的彩色的图片系统就回用灰色覆盖图片,点击后是蓝色的,系统默认点击后是蓝色的,(注点击的图片的渲染颜色是可以变的)
方法二:这个方法是ios8 .0之后用的方法,对上tabbar的图片设置分的有比较细,加入了点击后的图片设置
[UITabBarItem alloc]initWithTitle:<#(NSString *)#> image:<#(UIImage *)#> selectedImage:<#(UIImage *)#>
第一个image:参数是在没有点击的正常情况下得图片的显示,而第二种是在点击后的图片的显示,这是显示的图片是彩色的,我觉得这是在UITabbarItem上一个很大的改进,增加了用户的体验效果,对于新手要注意这种方法,可能视频上的导师没有讲到这个方法的区别
//__________________________________________________________________________
在刚学UIket的UITabBarItem是老是被提醒注意层次,和事实的逻辑,但是在编码的时候总会出一些不注意的常错的例如:
UINavigationController *hoomNavgation=[[UINavigationController alloc]initWithRootViewController:firstView];
UIBarButtonItem *barButton=[[UIBarButtonItem alloc]initWithBarButtonSystemItem:UIBarButtonSystemItemAdd target:self action:nil];// hoomNavgation.navigationItem.rightBarButtonItem=barButton;
我们经常说,一个上面的那个层次一个UITabBarController只有一个UITabBar,每个视图都是有自己独特的UItabbar的,如果在UITabBarController上设置UITabBarItem,而他又控制的所有的视图,这就使每一个视图上都有相同的UITabBatItem了,所以我们总结我们不能用self.navigationController .navigationItem.rightBarButtonItem=barButton;这种形式。
但是在上面的时候没有在视图的- (void)viewDidLoad 下编写而是在对象下编写就很有可能出现那种形式
》hoomNavgation.navigationItem.rightBarButtonItem=barButton;他可以变向的写成self.navigationController .navigationItem.rightBarButtonItem=barButton;这种形式,还是请新手注意
//_____________________________________________________________________________________
我们会经常忽略的方法: tabBarController.tabBar.selectedImageTintColor = [UIColor brownColor] 虽然这个方法是一个过期的方法,但是还是可以用的,他可以改变点击后的渲染的颜色;
设置程序启动时默认的ViewController视图(设置为3,一共5个ViewController,进来时候显示的视图就是第4个-tabBarViewD,下标从0开始)
tabBarController.selectedIndex = 3;
他可以帮助进行选项和视图的同步的移动