5

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

[自我presentModalViewController:ViewB动画:TRUE];

视图 B 通过调用存在:

[自我dismissModalViewControllerAnimated:真];

当这种情况发生时,除了视图 A 的 viewWillAppear 和 viewDidAppear 没有被调用(尽管它们在应用程序初始化期间被调用)之外,一切看起来都是正确的。奇怪的是……我相信我以前做过,但我不确定现在发生了什么。

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

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

所以现在我该怎么办!?!

4

1 回答 1

3

我刚刚遇到了同样的问题。

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

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

在控制器 B 我添加这个:

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

    if (delegate)
        [delegate didCloseInfoViewController];
}
于 2011-12-12T08:25:24.470 回答