iOS--分栏控制器

一、分栏控制器的基本概念

1、UITabBarController和UINavigationController一样是用来管理试图控制器的

2、与导航控制器不同,tab控制器使用数组管理子试图控制器的,并且子试图之间是平等关系,导航控制器所管理的试图控制器之间上

练习:

1、创建若干个子视图控制器(它们是并列的关系)

2、创建一个数组,将已创建的子视图控制器,添加到数组中

3、创建UITabBarController实例

4、tabBarController.viewControllers = viewControllers;

5、添加到window的rootViewController中

二、分栏试图控制器的结构

1、有两部分组成

1)contentView:显示当前controller的view

2) tabBar(标签栏):负责切换显示controller, 高度为49

2、tabBar

1) 标签栏是唯一的,就好比导航控制器的导航栏

2) 设置分栏的颜色

barTintColor

3) 设置分栏的背景图片

backgroundImage

4)标签栏的显示与隐藏

hidden

5)设置导航控制器默认显示的控制器

selectedIndex

3、tabBarItem

1) 用来控制一组控制器的切换,类似选项卡,每个Tab控制一个试图控制器,点击哪个tab就显示对应的试图控制器,当前的试图控制器

2) 每个tabBarItem都可以设置title、image/selectedImages、badgeValue

3) 设置选中的颜色

分栏控制器.tabBar.tintColor

3) TabBar只能显示五个tab Item,如果超过五个则会自动生成个Morede 标签显示剩余的Tab,这些Tab可以通过编辑显示在UITabBar上

4) 自定义Item

[UITabBarItem alloc]initWithTitle: image: tag:

[UITabBarItem alloc]initWithTabBarSystemItem:tag:

3、支持国际化

1)找到plist文件

2)右键  add row

3)Localizations  默认就一个ENGLISH

4)在 添加一个 Item 1  Chinese (simplified)

练习:

1、初始化我们需要在tabBarController中显示的视图控制器

2、初始化UItabBarItem

3、在子视图控制器中添加UItabBarItem

4、我们将子视图控制器放入数组中

5、初始化tabBarcontroller

6、将数组放入tabBar控制器中,方法viewControllers

三、代理监听分栏控制器的切换

1、视图将要切换时调用,viewController为将要显示的控制器,如果返回的值为NO,则无法点击其它分栏了

- (BOOL)tabBarController:(UITabBarController *)tabBarControllershouldSelectViewController:(UIViewController *)viewController

2、视图已经切换后调用,viewController 是已经显示的控制器

- (void)tabBarController:(UITabBarController *)tabBarControllerdidSelectViewController:(UIViewController *)viewController

3、将要开始自定义item的顺序

- (void)tabBarController:(UITabBarController *)tabBarController willBeginCustomizingViewControllers:(NSArray<__kindof UIViewController *> *)viewControllers

4、将要结束自定义item的顺序

- (void)tabBarController:(UITabBarController *)tabBarController willEndCustomizingViewControllers:(NSArray<__kindof UIViewController *> *)viewControllers changed:(BOOL)changed

5、结束自定义item的顺序

- (void)tabBarController:(UITabBarController *)tabBarController didEndCustomizingViewControllers:(NSArray<__kindof UIViewController *> *)viewControllers changed:(BOOL)changed

四、集成分栏控制器和导航控制器

1、在Tab Bar控制器中某一个Tab中使用Navigation控制器,这是最常见的用法,我们将在下面具体讲解这个用法

2、在一个Navigation控制器控制下的某一个或某些控制器是Tab Bar控制器,这时对该Tab Bar控制器的压入和弹出方法和普通视图控制器一样

五、总结

1、UINavigationController、UITabBarController和UIViewController通常都是组合出现的,一定要熟练使用

2、UINavigationController、UITabBarController都是UIViewController的子类,管理的都是UIViewContrller

3、UINavigationController可以嵌套UITabBarController

4、UITabBarController可以嵌套UINavigationController

你可能感兴趣的:(iOS--分栏控制器)