模态视图控制器,关闭并弹回以查看控制器

Dev*_*evC 5 modalviewcontroller ios poptoviewcontroller

我试图解雇一个被调用的ModaViewController C,回到A.ModalViewController出现在B.因此导航流程为A-> B - (现在的ModalView) - > C.我能够将ModalViewController后退关闭到B,但是我无法在完成括号中弹回A.这是我尝试过的代码:

[self dismissViewControllerAnimated:YES completion:^{
    [self.navigationController popToViewController:[[self.navigationController viewControllers] objectAtIndex:0] animated:YES];
}];
Run Code Online (Sandbox Code Playgroud)

ModalViewController被解除但不会弹回A.我在一个代码中调用了这个代码块IBAction.

有什么建议?

在第二个注释,当我解雇ModalViewController所有我UIPickers的控制器B是空的/解除分配.我也在使用ARC.

rde*_*mar 11

您的代码的问题是self.navigationController将为零.如果你有一个嵌入在导航控制器中的控制器(A),并且该控制器推送到另一个控制器(B)然后呈现你的最后一个控制器(C),那么你需要做这样的事情,

-(IBAction)dismissToBThenPop:(id)sender {
    UINavigationController *nav = (UINavigationController *)self.presentingViewController;
    [self dismissViewControllerAnimated:YES completion:^{
        [nav popViewControllerAnimated:YES];
    }];
}
Run Code Online (Sandbox Code Playgroud)

即使你从B呈现C,实际的presentationViewController也将是导航控制器.这段代码将解除C然后弹出B,但是你会在弹出A回弹之前看到B.如果你不想看到这个,那么你应该使用展开segue从C直接回到A.

关于拣货员空置和解除分配的第二个问题不应该在你说你有的情况下发生.您必须提供有关您在B中所做工作的更多信息才能解决该问题.