标签控制器UITabBarController介绍

跟UINavigationController类似,UITabBarController也可以轻松地管理多个控制器,轻松完成控制器之间的切换,典型的例子就是QQ、微信等应用。

底部包含一个UITabBar标签栏,点击标签栏上的按钮实现页面的切换



代码使用UITabBarController

UITabBarController包含一个控制器数组:

@property(nonatomic,copy)NSArray*viewControllers

通过该属性设置管理的所有控制器页面,同时在标签栏上设置对应的切换按钮

如:

UITabBarController*tbc=[[UITabBarControlleralloct]init];self.window.rootViewController=tbc;UIViewController*vc1=[[UIViewControlleralloc]init];vc1.view.backgroundColor=[UIColorredColor];UIViewController*vc2=[[UIViewControlleralloc]init];vc1.view.backgroundColor=[UIColoryelloColor];UIViewController*vc3=[[UIViewControlleralloc]init];vc1.view.backgroundColor=[UIColorblueColor];tbc.viewControllers=@[vc1,vc2,vc3];


UITabBarController包含一个标签栏UITabBar:

@property(nonatomic,readonly)UITabBar*tabBar

和导航控制器类似,标签控制器包含数据条目数组:

@property(nonatomic,copy)NSArray*items

条目为UITabBarItem

@property(nonatomic,retain)UITabBarItem*tabBarItem

UITabBarItem的属性有:

@property(nonatomic,retain)UIImage*p_w_picpath@property(nonatomic,copy)NSString*title@property(nonatomic,retain)UIImage*selectedImage@property(nonatomic,copy)NSString*badgeValue


UIViewController的tabBarController属性能够访问所属的标签控制器:

@property(nonatomic,readonly,retain)UITabBarController*tabBarController


控制器页面的切换方式:

1)用户触摸标签栏上对应切换按钮,能够自动切换到对应的控制器页面

2)也可以通过UITabBarController的selectedIndex进行切换

@property(nonatomic)NSUIntegerselectedIndex


storyboard使用UITabBarController

右击UITabBarController为view controllers拖线连接多个子控制器即可。

设置后的子控制器,都有一个tabBar,可以选择自控制器中的tabBarItem进行属性设置


App主流框架说明

App的主流框架:

根控制器是UITabBarController,每个子控制器又是UINavigationController


子控制器如果是导航控制器,使用导航控制器再进行页面切换时,需要隐藏标签栏

通过UIViewController的属性设置这种行为:(目的控制器)

@property(nonatomic)BOOLhidesBottomBarWhenPushed