2011-11-22 43 views
0

我的問題:IOS最好practices-導航和選項卡控制器和壓入/彈出

我的應用程序需要將登錄的用戶,所以我顯示第一視圖是一個登錄視圖。如果我們已經登錄,那麼我們會顯示應用視圖,這是一個標籤欄控制器。其中一個選項卡是帳戶信息+註銷。在註銷時,我想回到登錄屏幕。

我的解決方案:

根視圖是一個導航控制器,它包含主視圖。主視圖是透明的,只是說你沒有登錄?將帳戶屏幕推入堆棧。如果登錄,請將選項卡控制器視圖推入堆棧。選項卡控制器中的每個選項卡都是導航控制器。點擊賬戶選項卡將賬戶視圖上的賬戶視圖推入堆棧。該帳戶視圖有一個註銷按鈕,即彈出2次(和不工作):

// Go to main view (2 views up) to show default login screen (as we won't be logged in anymore) 
    UINavigationController *navController = self.navigationController; 
    [navController popViewControllerAnimated:NO]; 
    [navController popViewControllerAnimated:YES]; 

我覺得是這個問題:

導航控制器,我有頂層是與選項卡控制器中較低級別的導航控制器不同。

我的問題似乎相當典型,但我的解決方案似乎非常笨重。這不可能是最好的方式!有什麼建議?

回答

0

嘗試這樣?看起來很複雜,但我們試試吧。

[self.navigationController popViewControllerAnimated: NO]; 
[self.tabBarController.navigationController popViewControllerAnimated: YES]; 
+0

這似乎工作正常。我想我只是將標籤視圖粘貼在堆棧的頂部,並且只是坐在屏幕底部的標籤中,與啓動多個導航控制器相比,在啓動時可能更容易隱藏它們 – nflacco

相關問題