2014-09-30 138 views
0

我想弄清楚根據我給出的設計來獲取視圖控制器設置的最佳方式。我的應用程序從全屏登錄屏幕開始。用戶登錄,然後下一個視圖是3選項卡屏幕。在任何3個標籤視圖中單擊任何控件時,都需要將您帶到全屏視圖控制器。視圖控制器設置

現在我面臨的問題是, 1)指導方針說不要把TabBarController放在NavigationController中,在這種情況下我必須這樣做。 2)另外如果我將每個TabBarView的ViewControllers設置爲導航控制器,那麼我不會獲得全屏幕空間,因爲底部始終顯示標籤欄,我不需要看到它。

思想和指針欣然讚賞。

回答

0

我會設置它的方式是有一個全局的容器視圖控制器來管理所有的內部視圖控制器。例如:

============================= 
= Container View Controller = 
============================= 
    |    | 
------------ ----------- 
- Login VC - - Main VC - 
------------ ----------- 

然後,工作流應用程序啓動將是如下:

  1. 應用程序啓動和容器/防濺視圖控制器是根視圖控制器。
  2. 容器視圖控制器確定登錄狀態(可能顯示加載指示符等)。
  3. 轉換到正確的視圖控制器。

如果用戶沒有登錄,則可以轉換到登錄視圖控制器。從那裏,您可以訂閱代理回調或用戶登錄後發送的通知。一旦收到該消息,您可以重新檢查登錄狀態並相應地顯示視圖控制器。

如果用戶登錄,無論是在開始或接收登錄回調後,然後只顯示主視圖控制器。

註銷將以與登錄相同的方式工作。只需將通知推送到容器視圖控制器,並讓它相應地管理視圖控制器。

0

就個人而言,我會使用tabBarController作爲您的初始視圖控制器。如果用戶沒有登錄,立即出現(模態)你的登錄視圖控制器。一旦用戶登錄後關閉登錄控制器,並返回到tabBarController。將導航控制器中每個選項卡的視圖控制器包裝在一起,但設置爲hidesBottomBarWhenPushed以隱藏tabBar。