2016-05-16 99 views

回答

0

導航控制器用於管理一堆視圖控制器。您可以一次將控制器「推」到堆棧上(這幾乎是所有時間都可以做的),或者您可以「一次設置」包含多個控制器的堆棧。 Read the manual.

1

首先它不是SetViewController但它是setViewControllers,因爲它的集合是array of view controller

可以在tabbar controller只設置視圖控制器navigation controllertabbar controller喜歡聰明人,你可以pushviewcontroller只能在navigation controller

現在,讓我們瞭解navigation stack概念:你有一個導航

例如controoler說, nav

它沒有任何對象(視圖控制器)。現在

例如你有三個viewcontrollers像A,B & C' and you set that array to you導航controller`類似的陣列,

[self.navigationController setViewControllers:viewControllerArr]; 

那麼你的導航堆棧變得像

A -> B -> C (top of stack)

現在你推一個視圖控制器相同的導航堆棧,讓我們來說吧D類似的東西,

[self.navigationController pushViewController:D animated:YES]; 

然後您的導航棧等變得,

A -> B -> C -> D (top of stack)

現在,如果你彈出一個視圖控制器類似,

[self.navigationController popViewControllerAnimated:YES]; 

然後堆棧彈出頂部,然後你的籌碼看起來像,

`A -> B -> C (top of stack)` 

再次彈出一個,

`A -> B (top of stack)` 

所以,set和push視圖控制器基本上主要的區別是,當你設置viewcontrollers時,你設置的數組就是多個數組。所以,我們可以說setViewController是初始化導航控制器與初始控制器(導航堆棧的初始化)

其中push或pop是添加或刪除導航堆棧或從導航堆棧刪除視圖控制器。

希望這會有所幫助:)