2017-05-12 308 views
0

我正在開發iOS應用程序,有時我需要跳到應用程序的第二個視圖上,但是完全依賴於我留下的視圖狀態。我發現popToViewController適合這個操作。我的問題是:其他視圖會發生什麼?他們是否被殺害,或者他們在背景中還活着?爲了在視圖之間導航,我使用了navigationController。 謝謝。popToViewController生命週期

回答

0

NavigationController像堆棧一樣工作。當你彈出一些東西被釋放時。例如視圖控制器堆疊這樣的:

A - >乙 - 「ç - > d

如果將調用popToViewController(B)的疊層應該是:

A - >乙

視圖控制器C和D應當被釋放,當然如果它們沒有強引用來保存它們的話)

0

導航控制器在我們推送和彈出視圖控制器時工作在堆棧上。當我們推視圖控制器然後查看插入堆棧和當我們彈出視圖時將其從堆棧中移除。衆所周知,堆棧正在使用先入先出規則。

popviewcontoller從導航堆棧彈出一個viewcontoller。如果你想彈出一個特定的viewcontoller,然後根據該堆棧中的控制器的索引,你可以直接導航它。

0

導航控制器爲每個視圖控制器維護一個導航堆棧,每個控制器都處於堆棧上直到彈出,窗口上的控制器是topViewController。

當你調用popToViewController之間的所有viewController都是從導航棧中彈出的時候會從內存中釋放出來,假設沒有其他的類正在強有力地保存那個視圖控制器。