如何解雇所有模态视图?

Dra*_*ior 2 iphone objective-c ios

假设我基于A呈现模态视图B,然后基于B呈现模态视图C.

有没有办法解雇B和C并直接回到A?

ilm*_*acs 5

假设您在XCode4.5中使用故事板,则可以使用新的展开segue.实行

 -(IBAction)back:(UIStoryboardSegue*)segue
Run Code Online (Sandbox Code Playgroud)

在A.(您可以将函数定义留空.)然后在C的控制器中右键单击新的退出图标并将新条目连接到将启动展开的控件.


Eze*_*eki 5

是的,我有一些解决方案,可能它有点脏,但你可以解决

UIViewController* vc = self;

while (vc) {
    UIViewController* temp = vc.presentingViewController;
    if (!temp.presentedViewController) {
        [vc dismissViewControllerAnimated:YES completion:^{}];
        break;
    }
    vc =  temp;
}
Run Code Online (Sandbox Code Playgroud)

你可以从堆栈中的任何模型控制器调用它,所有这些都将被解雇.我们只是在寻找第二个,然后解雇它.