UIViewController (View A) 通过调用另一个 View Controller (View B) 作为模态控件来调用它。
[自我presentModalViewController:ViewB动画:TRUE];
View B 通过调用存在:
[自我dismissModalViewControllerAnimated:真];
当这种情况发生时,除了 View A 的 viewWillAppear 和 viewDidAppear 没有被调用(尽管它们在应用程序初始化期间被调用)之外,一切看起来都是正确的。奇怪的是……我相信我以前做过,但我不确定现在发生了什么。
我做的有什么明显的错误吗?
谢谢!
* 更新 *
我刚刚了解到,这种行为只发生在 UIModalTransitionStylePartialCurl 过渡类型中。对于所有其他转换类型,父 View Controller 可以很好地获取其 viewDidAppear 消息。
所以现在我该怎么办!?!
最佳答案
我刚刚遇到了同样的问题。
我通过添加委托(delegate)和委托(delegate)方法解决了这个问题。
因此,当 Controller A 打开 Controller B 作为具有页面 curl 的模态视图 Controller 时,我将 Controller b's.delegate 的实例设置为 Controller a。
在 Controller B 我添加这个:
-(void) viewWillDisappear:(BOOL)animated {
[super viewWillDisappear:animated];
if (delegate)
[delegate didCloseInfoViewController];
}
关于模态关闭后未调用 UIViewController 的 viewDidAppear,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3818614/