2015-09-05 56 views
0

我的應用程序中有四個選項卡。當用戶第一次打開應用程序時,他會看到第一個選項卡的視圖控制器。此時,我想加載所有其他標籤的內容,因此當用戶打開其他標籤時,他會立即看到內容。Force ViewController在打開之前加載

enter image description here

我知道這是可能在Android中。在iOS中可以嗎?

編輯:

我試圖通過調用[myViewController view];內的AppDelegate準備一個視圖控制器,但是當我點擊打開的的viewController的標籤,它似乎有一個新的觀點再次加載。

相關:Force viewDidLoad to fire on iOS

+0

將您的數據邏輯移動到初始化方法,例如ViewController的initWithCoder。這種方式當ViewControllers被Tabbarcontroller初始化時,你將會準備好你的數據。確保在後臺線程中執行繁重的數據邏輯。 –

+0

@Puneet謝謝..我只是試了一下,似乎我沒有得到那麼多的性能提升。所有選項卡都有自己的webView,並且我在'initWithCoder'中加載了一個webview,並在'viewWillAppear'中調用了'addSubview'。我認爲'addSubview'不能在'initWithCoder'階段被調用。什麼時候可以加載每個標籤頁的最快時間? –

+0

Webview只有在它被添加到您可以在viewDidLoad中最早完成的子視圖時纔開始加載。嘗試在init中使用webview的startLoading方法,並在添加到子視圖之前查看它是否已加載。 –

回答

0

是的,這是可能的。您應該將您的數據加載到您的ViewController的init方法或viewDidLoad方法中。因此,其他選項卡的數據將被加載。

+0

但是,只有當tabbarcontroller將屏幕上的視圖推送時,viewDidLoad纔會被調用。我不認爲OP當時想加載數據。 –

+0

這取決於條件。我不知道Maximus S想要什麼,這只是一個方法。 –

0

您的viewController的視圖延遲加載(自動意在需要時加載)。如果你想提前加載它,只需調用一次getter。

[myViewController view]; 
相關問題