UIViewController 的 viewDidAppear 在模式关闭后不会被调用
UIViewController(视图 A)通过将另一个视图控制器(视图 B)作为模态控件调用来调用它。
[自我呈现ModalViewController:ViewB动画:TRUE];
视图 B 通过调用而存在:
[selfmissModalViewControllerAnimated:TRUE];
发生这种情况时,一切看起来都正确,除了视图 A 的 viewWillAppear 和 viewDidAppear 没有被调用(尽管它们在应用程序初始化期间被调用)。奇怪的是......我相信我以前做过这个,但我不确定现在发生了什么。
我做的事情有什么明显错误吗? 谢谢!
* 更新 * 我刚刚了解到,这种行为仅发生在 UIModalTransitionStylePartialCurl 转换类型中。对于所有其他转换类型,父视图控制器可以很好地获取其 viewDidAppear 消息。
那么现在我该怎么办?!
A UIViewController (View A) invokes another view controller (View B) by invoking it as a modal control.
[self presentModalViewController:ViewB animated:TRUE];
And View B exists by invoking:
[self dismissModalViewControllerAnimated:TRUE];
When this occurs everything looks right EXCEPT that View A's viewWillAppear and viewDidAppear does not get called (they are called during app init though). Weird thing is... i believe ive done this before, but im not sure what is going on now.
Is there anything obviously wrong that im doing?
Thanks!
* UPDATE *
I just now learned that this behavior only occurs with the UIModalTransitionStylePartialCurl transition type. For all other transition types the parent view-controller gets its viewDidAppear message just fine.
So now what am i suppose to do!?!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
我刚刚遇到了同样的问题。
我通过添加委托和委托方法解决了这个问题。
因此,当控制器 A 将控制器 B 作为具有卷页功能的模态视图控制器打开时,我将控制器 b's.delegate 的实例设置为控制器 a。
在控制器 B 中我添加以下内容:
I just ran in to the same problem.
I solved it by adding a delegate and a delegate method.
So when Controller A opens Controller B as a modal view controller with a page curl i set the instance of controller b's.delegate to be controller a.
In controller B i add this: