Unwind segue在iOS9中停止工作>冻结没有崩溃



我有一个iOS应用程序,其主视图控制器在一行中呈现两个模态。

这样的序列:

VC1> M1> M2

我在模态2中有一个unwind segue我想用它跳转回VC1。在VC1中,我添加了一个IBAction:

-(IBAction)unwindFromM2:(UIStoryboardSegue *) unwindSegue
{
}

在iOS 8和Xcode 6中一切都运行良好。然而在Xcode 7和iOS 9中,调用unwind segue M2后,我注意到unwindFromM2被调用了但之前的视图(M2)没有消失,基本上是冻结了。Xcode中没有错误或崩溃。征求意见

我直接从黄色的视图控制器图标拖到storyboard中的exit图标(没有关联一个按钮到unwind)。这是原因吗?我有一个退出视图控制器的两步对话框,不能直接拖动一个动作来触发unwind

在iOS9中有一个解决这个问题的方法。我需要做的就是让unwind在unwind代码中弹出视图控制器

#define SYSTEM_VERSION_GREATER_THAN_OR_EQUAL_TO(v)  ([[[UIDevice currentDevice] systemVersion] compare:v options:NSNumericSearch] != NSOrderedAscending)
- (IBAction)unwindToMyViewController:(UIStoryboardSegue *)segue {
    if (SYSTEM_VERSION_GREATER_THAN_OR_EQUAL_TO(@"9")) {
        [self.navigationController popViewControllerAnimated:YES];
    }
}

最新更新