2013-07-20 33 views
2

我正在處理需要不斷驗證服務器的應用程序,所以我想保存用戶憑據,然後在必要時使用它。因此,當用戶啓動應用程序時,驗證檢查憑證,然後如果有效,則將用戶轉到UITabBarController。這樣,用戶在每次執行應用程序時都不必登錄。考慮到,每當用戶點擊註銷,我將需要推入登錄視圖控制器以及解僱UITabBarController。我的問題是我如何解僱UITabBarController?我不認爲委託會幫助,因爲我的登錄視圖控制器甚至不知道UITabBarController,我不能讓UITabBarController自行解散。另外我有一個擔心,如果我不解僱UITabBarController它會留在內存中。關閉UITabBarController並按下登錄視圖控制器

我畫了一張圖來說明情況。

enter image description here

感謝, 馬科斯。

+0

請不要對這個網站的問題的一些搜索。這種情況經常被問到。 – rdelmar

+0

@ vilelam的場景與我所尋找的場景相差無幾,並且花了多長時間才能找到它,但並沒有問及「經常」這個問題。 – JMD

回答

1

你有兩個選擇:

1)使用TabBar控制器目前登錄視圖控制器

[self.tabBarController presentViewController:loginViewController animated:YES]; 

2)每次更改應用程序窗口的根視圖控制器:

[[UIApplication sharedApplication].window setRootViewController:tabBarController]; 

然後:

[[UIApplication sharedApplication].window setRootViewController:loginViewController]; 
+0

不僅僅是簡單地呈現ViewController:loginViewController?我說這是因爲我不關閉tabBarController,它會影響內存。 – vilelam

+0

這通常是可以接受的,因爲你永遠不會同時實例化多個實例。但這是你的選擇 –

1

即將在有點晚了這裏,但我幾乎等同於你的一個場景的解決方案是:

[tabBarController.moreNavigationController popToRootViewControllerAnimated:NO]; 
tabBarController.selectedIndex = 0; 
相關問題