我一直在閱讀幾篇文章,涉及切換窗口的rootViewController
,有時會說在整個應用程序的生命週期中保持相同的rootViewController
總比切換它好,而其他帖子與更改rootViewController
在應用程序的某個點。我對此感到困惑,在Apple的文檔中我找不到有關這一點的任何建議。UIWindow的rootViewController注意事項
當應用中可能有不同的內容視圖控制器時,最佳做法應該是什麼?例如,假設你有,你想先顯示歡迎視圖在登錄或註冊(UINavigationController
)選項卡式應用程序(UITabBarController
):
1)具有固定rootViewController
方法。我認爲您應該將UITabBarController
設置爲rootViewController
,因爲該應用程序的核心是選項卡,但如果需要用戶憑據,請在UITabBarController
內設置UINavigationController
,隱藏標籤欄,以推送歡迎視圖並導航到登錄/註冊視圖控制器。
2)方法切換rootViewController
。首先,如果需要用戶憑證,請將UINavigationController
設置爲rootViewController
以顯示歡迎視圖並導航至登錄/註冊,並且一旦成功提供用戶憑證或成功創建帳戶,就將rootViewController
切換爲UITabBarController
以顯示核心選項卡應用程序。
如果最好的一般方法是根據需要切換rootViewController
,那麼您會考慮哪些內存管理考慮事項?我是否需要在AppDelegate中有兩個strong
屬性(UITabBarController
和UINavigationController
)?那麼在切換rootViewController
時,視圖控制器之間的轉換如何?它會平滑嗎?還是應該動畫化它?
在此先感謝
這可能會關閉,因爲您的問題基本上是詢問人們的意見。我會選擇選項1.在需要用戶登錄時,根據根控制器將登錄屏幕顯示爲模式視圖控制器。在成功登錄時關閉它。無需切換根控制器。 – rmaddy
@rmaddy謝謝。我認爲如果只有一個登錄視圖,將登錄視圖呈現在根的頂部將是最好的方式,但在這種情況下,我沒有唯一的登錄視圖,我有一個歡迎的視圖與兩個按鈕和一個歡迎視圖 - >登錄/註冊視圖導航層次結構,所以應該以模態方式呈現這樣的層次結構是最好的方式? – AppsDev
@rmaddy有沒有進一步的想法解決AppsDev的評論?乾杯 –