1

我使用带有多个视图控制器的 UINavigationController。其中一个以编程方式构建的视图控制器loadview:执行一些自定义动画以从前一个视图控制器进行转换。

所以这些动画应该只在视图控制器被推送时发生,因为在推送之前创建视图控制器时 loadview 只被调用一次,这通常都可以正常工作。

然而,当其他一些视图控制器被推送,并且内存变得紧张时,视图会被系统自动卸载并在其他视图控制器弹出后再次出现时重建。
自然地,我不希望发生过渡动画,因为如果它们不遵循对前一个视图控制器的推动,它们看起来会很奇怪。

我自己可能会保留一些状态信息或发送通知,以了解是否因为 pushViewController 或 popViewController 而调用了 loadview,但我想知道是否有任何内置方法可以知道 loadView 是否发生,因为视图是第一个构造的时间,还是因为它以前被清除过?

4

1 回答 1

1

不,你在 UIViewController 中没有这样的内置方法,但你可以依靠 -(void)viewDidUnload,知道你的视图不应该在 viewDidLoad 中显示你的动画。所以是的,这意味着保留一些状态信息。

于 2011-04-30T12:57:10.383 回答