2012-03-16 106 views
0

在構建我的應用程序(基於選項卡的應用程序)時,用戶可以從第一個選項卡查看其配置文件信息(特定於應用程序)。於是紛紛設立UINavigationController有以下視圖控制器:在UINavigationController Stack中顯示特定視圖

1 - Edit profile 
0 - View profile (also the root view controller for the `UINavigationController`). 

我想實現的是,如果個人資料尚未建立(即第一次運行應用程序),我想直接去流編輯配置文件視圖,它現在是默認行爲,因爲該視圖位於堆棧的頂部。

我遇到的問題是,如果配置文件已設置,我將如何直接進入查看配置文件。我查看了UINavgationController的文檔,並且不清楚如何將視圖控制器彈出堆棧。方法popToViewController:animated返回從堆棧彈出的項目的NSArray。這是否意味着這些視圖控制器不再可用,和/或是否有更好的方法直接進入我想要的視圖控制器?

+0

在你的問題中有一些令人困惑的問題。你說「基於標籤」(UITabBarController),但你正在談論導航(UINavigationController)。如果使用UINav ...,則將EditProfileController推入堆棧,完成後,將其彈出並更新ViewProfileController。 – Canopus 2012-03-16 20:40:33

+0

@Canopus整個應用程序是基於標籤的,但操縱用戶帳戶的部分通過一系列屏幕導航,非常像Twitter或Fourquare。 – 2012-03-16 20:48:57

+0

假設配置文件是您的選項卡之一,默認情況下它會顯示ViewProfileController,並且您知道層級結構中的下一個視圖是EditProfileController,它位於-viewDidLoad上,如果是第一次,請將EditProfileController推入堆棧。是的,「...視圖控制器不再可用」。就個人而言,不是沒有其他方式 - 我沒有看到這種方法有任何問題。 – Canopus 2012-03-16 20:53:12

回答

0

如果您在導航控制器中只有兩個視圖,並且View是根視圖控制器,則可以確保通過在選項卡上選擇該選項卡之前或之後立即運行popToRootViewControllerAnimated:來顯示該視圖酒吧控制器。

如果您遇到了要編輯顯示的情況,請使用編輯視圖控制器運行popToRootViewControllerAnimated:後跟pushViewController:animated:

當您想彈出時,您可以使用popViewControllerAnimated:而不是popToViewController:animated。 (你在這個導航控制器中只有兩個視圖控制器,所以它只有一個會彈出。)

這似乎很簡單,除非我誤解了你的問題。

大多數程序都不需要從popToViewController:animated返回的視圖控制器數組。我自己並沒有真正發現需要使用這種方法,正如我所說,它看起來並不像你在這裏需要它。

+0

謝謝,你完全理解。我主要關心的是完全從導航控制器中刪除的視圖。 – 2012-03-16 20:56:07

相關問題