2012-01-14 66 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