模态关闭后未调用 UIViewController 的 viewDidAppear

标签 uiviewcontroller ios-simulator viewdidappear

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/

相关文章:

objective-c - 处理 View Controller 或 subview 中的通知

objective-c - 触摸 UIButton 并在 UIView 或 UIViewController 上显示 Unity

iphone - 将appdelegate数据传递给ViewController

ios - 非阻塞连接到回送地址(127.0.0.1或本地主机)

ios - 无法模态呈现之前的 View Controller

iphone - 在iPad/iPhone模拟器上模拟超过2次触摸

ios - xcode 9 simulator 错误 unable to boot the simulator launchd failed to respond mac os sierra

ios - 当 View 从 subview 返回时调用函数 | swift

ios - 从一个 View Controller 转换到另一个 View Controller - UI 更新

ios - 在 iOS5.1/6 中,presentViewController 和 viewDidAppear 没有被调用