2011-04-23 35 views
1

我想更好地理解用UINavigationController創建複雜的導航。請,如果我錯了任何假設(這是可能的),請讓我知道。UINavigationController更深入的理解

據我所知,UINavigationController似乎是專門設計用來實現一種導航,其中推新控制器以「線性」方式提供更深入的數據細節。您可以通過「推送」或返回「彈出」控制器進一步進行導航。

但是,通常情況下,應用程序在每個視圖中都有一種轉到另一個視圖的方式,該視圖不必是父視圖,並且可以位於堆棧的以前級別(或者根本不存在)。這樣的應用程序傾向於讓用戶去他想要的任何地方,這似乎與UINavigationController的工作方式相沖突。

在我看來很明顯,如果我開始推控制器沒有控制,我會有內存問題。

例如,我可以如何轉到堆棧中兩層的視圖(例如,「主頁」按鈕可以做什麼)?我是否應該將一些控制器/視圖保存爲單例變量中的初始值,以便更好地訪問並避免內存問題?

回答

4

您可以使用popToRootViewControllerAnimated:返回根目錄或popToViewController:animated:以回彈到任意先前的視圖控制器。您也可以使用setViewControllers:animated:直接設置整個視圖控制器堆棧。

但要小心,不要混淆你的用戶。

+0

非常感謝Anomie,它一直非常有用! – IoChaos 2011-04-23 16:49:09