Container view controller整理筆記:
(也就是說一個View Controller顯示的某部分内容屬于另一個View Controller,那麼這個View Controller就是一個Container view controller)
1.UINavigationController:導航控制器,适用于父子頁面的跳轉。管理有層級關系的視圖控制器的分層。通過堆棧實作,用入棧和出棧來管理各個視圖控制器的切換,空間回收。rootViewController在棧最底層,ControllersView裡始終顯示棧頂控制器的視圖。由Navigation bar,Custom content,Navigation toolbar組成。
![](https://img.laitimes.com/img/9ZDMuAjOiMmIsIjOiQnIsISNwETM1YDN0EDNwcDM2EDMy8CX0Vmbu4GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.jpg)
2.UITabBarController:标簽控制器,适用于平級頁面的跳轉。管理的視圖控制器是并列關系。通過不可變數組實作,建立時需要全部指定所管理的多個視圖控制器,而且多個視圖控制器同時存在,空間不回收。由Tab Bar和Custom Content組成。Tab超過5個以上最後一個會變成more。
3.UISplitViewController:分截視圖控制器,多視圖控制器。
4.視圖控制器之間的嵌套
正常用法:标簽視圖控制器管理多個導航控制器,每個導航控制器又管理多個單視圖控制器(每個界面都有導覽列,導覽列都是不同的,單視圖控制器可以自定義導航内容)。
非常用法:導航控制器管理标簽控制器,标簽控制器用來管理多個單視圖控制器(每個界面都有導覽列,但是導覽列都是一樣的,單視圖控制器不可以自定義導覽列内容),這種用法不符合邏輯,很少使用。
5.UITableViewController、UIViewController是單視圖控制器,不可以管理視圖控制器,隻能管理視圖。