2012-01-14 85 views
0

我必須依次展示4個視圖控制器。一個是另一個的延續。它們由navigationController提供。iphone - 緩存UIViewControllers?

A> B> C> d

如果我去A,然後到B,然後到C,並返回到B,當我返回到C似乎更快的第二次。我想所有的C都被緩存或以某種方式存儲。這個問題是,例如,C在第一次進入時調用UIImagePickerController,但不是第二次。爲什麼?

的的UIImagePickerController呈現C內的viewDidLoad,由線等

[self.navigationController presentModalViewController:拾取器動畫:YES];

但顯然,如果C被「緩存」的viewDidLoad不會跑第二次,這就是爲什麼選擇器不會被調用,除了第一次。

我喜歡緩存VC的想法,因爲它是快速的地獄去前進和後退,但是,在這裏我應該把調用選擇器,因此它被稱爲正確?我認爲這將是viewWillAppear,但我嘗試過,這種方法從來沒有被稱爲。

有什麼想法?感謝

回答

1

仔細檢查viewDidAppear:。這是您描述的代碼的正確位置。如果沒有被調用,這表明你正在做錯誤的東西,或者你使用了錯誤的方法簽名。

+0

viewDidAppear沒有被隨時調用,不是第一次,也不是後來的viewcontroller出現的時間。這很簡單,可能是錯的是一個好問題。 – SpaceDog 2012-01-15 03:49:07

+0

我發現了這個問題:viewDidAppear頭上有一個錯字!謝謝。 – SpaceDog 2012-01-15 04:04:46

1

沒有這樣的緩存可以省略viewDidLoad的調用。你總是可以把斷點放在那裏,看看它是否被調用過。

+0

我是斷點,我看到的是viewDidLoad在視圖控制器第一次出現時被調用,但不是隨後的時間。 – SpaceDog 2012-01-15 03:48:11