今天去面试,被问了一个问题:页面切换的方式有哪几种,UITabBar是如何切换页面的。哎,因为做了太多ipad的应用,就忘记了UITabBarController的使用,真是致命!!!UITabBarController在绝大多数iphone应用中都是要用的啊,起着整体页面布局的作用啊!有木有!!!
巧合的是,突然在混乱的桌面上看到一个page文档,写着《分页控制器》,既然如此就整理一下之前积累的分页控制器的笔记吧~~
1、分页控制器的基本概念
和导航控制器一样,都是用来管理视图控制器的。不同的是,分页控制器的管理的是几个固定的视图控制器,各个子控制器之间是并列的,可以任意切换。
导航控制器里面的VC是层次关系,出栈会被销毁;分栏控制器里面的VC是并列平等的,不会自动去销毁里面的VC.
2、创建一个UITabBarController
A、创建几个VC,给VC的title属性赋值
B、将这几个VC放在一个NSArray中
C、alloc一个UITabBarController,将NSArray对象赋值给分页控制器对象的viewControllers属性
3、分析一下分栏控制器的结构
A、分栏控制管理着若干个VC,由viewControllers属性来管理
B、 每个分栏VC有一个tabBar属性,相当于导航控制器的uitoolbar,UITabBar对象里面会有items属性来管理所有标签VC的UITabItem对象。
C、UITabBarItem是由每个视图控制管理的,与导航控制器的UIBarButtonItem类似,是VC的属性,默认根据vc的title属性自动延迟创建。
另外,iphone上只能显示5个VC,超过的会自动集中在一个“more”标签里面,写代码试试就知道了。
4、集成导航控制器和分栏控制器
A、在分页控制器中的某一个tab中使用Navigation控制器,最常见用法
B、在导航控制器下的某些VC是分页控制器,对分栏控制器的压入和弹出和普通VC一样,可能会有问题。
5、使用分页控制器的delegate监听点击了哪一个vc
- (void)tabBarController:(UITabBarController *)tabBarController didSelectViewController:(UIViewController *)viewControlle
6、附上一篇使用xib创建UITabBarController的方法,好久没用xib了啊,都忘了~~~~(>_<)~~~~
http://my.oschina.net/plumsoft/blog/49748