0

我的工作的應用程序,其中包含的視圖的堆疊由導航控制器管理(iOS 5以上)工作:如何切換到導航控制器管理的視圖?

MyNavController - > MyRootViewController - > MyTableViewController - > MyDetailViewController

我也有圖不受導航控制器管理的控制器,用於處理應用程序的登錄(LoginViewController)和註冊(RegViewController)。

當應用程序啓動時,它會檢查是否已創建帳戶。如果是這樣的話,它將會登錄到LoginViewController進行用戶登錄,然後它會繼續到MyRootViewController。但是,如果未檢測到登錄,則用戶將看到RegViewController場景以創建帳戶。然後,我想直接將用戶帶到MyTableViewController場景,繞過RootViewController場景。這是可能的(通過故事板或編程)?我試圖從RegViewController向MyTableViewController定義一個模式的segue,這似乎部分工作 - 它能夠去場景,但在屏幕頂部缺少導航欄。但是當我選擇一個表項時,它無法進入MyDetailViewController。它崩潰並出現錯誤「只有在源控制器由UINavigationController實例管理時,才能使用Push segues。」

有什麼建議嗎?

在此先感謝。

+0

您是否考慮將初始視圖控制器中的登錄或註冊視圖控制器顯示爲模態視圖? –

+0

這是一個很好的建議。但是,對於我的註冊過程,我實際上有2個視圖,並且我的註冊視圖從我的登錄視圖中延續,因爲我在登錄視圖中有一個「創建帳戶」按鈕,可以繼續註冊。 views:(LoginViewController-> RegViewController1-> RegViewController2)。因此,如果我的初始視圖使用presentViewController方法顯示登錄視圖,並且用戶最終在RegViewController2中,那麼如何返回到MyRootViewController? – Kenny

+0

初始視圖控制器(導航控制器之後的視圖控制器)不應該有任何交互式UI元素(可能只是一個微調器或飛濺圖像)。它所做的只是連接到服務器並將用戶重定向到正確的路徑。 –

回答

0

選擇您的MyDetailViewController。在頂部選擇編輯器 - >嵌入 - >導航控制器。

+0

我試過了,它沒有幫助。問題仍然存在,我認爲它是因爲RegViewController不是由UINavigationController管理的。因此,將已經由MyNavController管理的MyDetailViewController嵌入到另一個導航控制器中將無濟於事。糾正我,如果我不正確地理解你的建議。 – Kenny

相關問題