UIViewController的viewDidAppear在模态关闭后没有被调用

时间:2010-09-29 03:57:54

标签: uiviewcontroller ios-simulator viewdidappear

UIViewController(视图A)通过将其作为模态控件调用来调用另一个视图控制器(视图B)。

[self presentModalViewController:ViewB animated:TRUE];

视图B通过调用而存在:

[self dismissModalViewControllerAnimated:TRUE];

当发生这种情况时,一切看起来都是正确的,除了View A的viewWillAppear和viewDidAppear没有被调用(尽管他们在app init期间被调用)。奇怪的是......我相信我以前做过这个,但我不确定现在发生了什么。

我做的事情有什么明显错误吗? 谢谢!

*更新* 我刚才了解到这种行为只发生在UIModalTransitionStylePartialCurl转换类型中。对于所有其他转换类型,父视图控制器获取其viewDidAppear消息就好了。

所以现在我想做什么!?!

1 个答案:

答案 0 :(得分:2)

我刚遇到同样的问题。

我通过添加委托和委托方法解决了这个问题。

因此,当控制器A打开控制器B作为具有页面卷曲的模态视图控制器时,我将控制器b's.delegate的实例设置为控制器a。

在控制器B中我添加:

-(void) viewWillDisappear:(BOOL)animated {
    [super viewWillDisappear:animated];

    if (delegate)
        [delegate didCloseInfoViewController];
}