爲了更好的用戶體驗目的,我想提前加載其他選項卡。如何加載應用程序啓動時其他選項卡的視圖?
我在我的UITabBarController中有4個選項卡,並且當用戶選擇除第一個視圖控制器之外的特定選項卡時調用每個UIViewController的viewDidLoad()。
什麼是加載應用程序時,啓動其他選項卡視圖的最佳方式,用戶選擇該選項卡過嗎?
爲了更好的用戶體驗目的,我想提前加載其他選項卡。如何加載應用程序啓動時其他選項卡的視圖?
我在我的UITabBarController中有4個選項卡,並且當用戶選擇除第一個視圖控制器之外的特定選項卡時調用每個UIViewController的viewDidLoad()。
什麼是加載應用程序時,啓動其他選項卡視圖的最佳方式,用戶選擇該選項卡過嗎?
要強制調用viewDidLoad
方法,您只需引用視圖控制器的view
屬性。
像這樣的事情會做到這一點:
_ = someViewController.view // causes `viewDidLoad` to be called.
嘗試從UITabBarController
的堆棧調用每個視圖控制器上的loadViewIfNeeded()
方法。根據文檔它
加載視圖控制器的視圖,如果它尚未加載。
您可以通過其viewControllers
屬性找到所有UITabBarController
的視圖控制器。
是鑑於裝載真正的問題還是你與像在網絡上加載數據的其他一些關心混爲一談呢?與其試圖改變視圖加載生命週期,通常更傾向於將視圖加載所需的行爲解耦,以便直接觸發它。 – Jonah
@Jonah,我的NSFetchedResultsController位於第二個選項卡中,我在第一個選項卡中保存了coredata中的一些數據,NSFetchedResultsController未按預期工作,除非在保存數據之前加載該選項卡。 – RavikanthM
不同選項卡的視圖控制器不應該相互依賴。每個視圖控制器應該獨立運行。 – rmaddy