今天去面試,被問了一個問題:頁面切換的方式有哪幾種,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