(1) 導(dǎo)航控制器(UINavigationController)相當于一個棧汉规,里面裝的是各個視圖控制器(ViewController)卤档。最先進去的視圖控制器在最下面浇垦,最后進去的視圖控制器在最上面氯材。導(dǎo)航控制器被初始化的時候一般都有一個根視圖控制器甸私,位于棧的最底層诚些。在最上面的那個視圖控制器就是該導(dǎo)航控制器對外展示的控制器,即用戶看到的界面皇型。
(2) 把導(dǎo)航控制器載入到App中泣刹,須要把該導(dǎo)航控制器設(shè)置為window的根視圖控制器(rootViewController)
(3) 在棧中新增或刪除一個視圖控制器,就需要先得到導(dǎo)航控制器犀被。一般在棧中的視圖控制器都有一個self.navigationController(我的導(dǎo)航控制器)椅您,即該視圖控制器所在的導(dǎo)航控制器,這樣就拿到了導(dǎo)航控制器寡键。
(4) 向棧中新增視圖控制器用pushViewController方法掀泳,即向棧內(nèi)推進去一個視圖控制器,對用戶而言就是打開了一個新界面西轩。
(5) 從棧中刪除視圖控制器用popViewController方法员舵,該方法將位于最上面的視圖控制器彈出去,對用戶而言就是從當前視圖返回到了上一級視圖藕畔。
(6) push和pop實質(zhì)上是跳轉(zhuǎn)頁面的操作马僻。pop有很多操作方法,如彈出去當前視圖控制器注服、彈出到指定視圖控制器或根視圖控制器韭邓。
(7) 導(dǎo)航控制器中有一個屬性viewControllers(數(shù)組),存儲該導(dǎo)航控制器的棧中所有的視圖控制器溶弟,最先被push進去的視圖控制器是0女淑,以此類推...最后被push進去(棧頂)視圖控制器是viewControllers中的最后一個。self.navigationController.viewControllers[0]就是該導(dǎo)航控制器的根視圖控制器辜御。