故事板 - 弹出到视图控制器然后推送导致多次推送

时间:2014-12-01 19:21:52

标签: objective-c uinavigationcontroller popviewcontroller unwind-segue

在Objective C / iOS中;

我们有一个与此类似的过程(在xcode storyboard中设置);

  

菜单视图控制器 - > 输入代码 - > 处理/验证 - > 提供失败的代码页

( - >)箭头表示故事板中的push segue设置

当处于失败状态时,我想弹出Enter in a code视图控制器。

 UIViewController *vc = nil;

    NSUInteger index=0;
    for (UIViewController *viewController in self.navigationController.viewControllers) {
        if ([viewController isKindOfClass:[SomeViewController class]]) {
            vc = viewController;
            break;
        }
        index++;
    }

    if (vc) {
        dispatch_async(dispatch_get_main_queue(), ^(void) {
            [self.navigationController popToViewController:vc animated:YES];
        });
        return;
    }

这让我回到了我想去的VC。

现在,当我在Enter code页面上按下提交时,它会再做3或4次"推送",当它应该只有1时。

我需要解开segue吗?我尝试清空导航视图控制器堆栈,我甚至试图摆脱它的最后一个活动视图控制器 - 这两个都返回一个空白或黑色窗口视图框架。

为什么弹出导航堆栈中的视图控制器会影响视图控制器中的segue,以至于每当我尝试执行push segue操作时,它都会尝试将多个视图控制器推入堆栈?

1 个答案:

答案 0 :(得分:0)

原来我遇到了以下问题

按下按钮会在故事板中导致segue操作 我在按钮上的代码中执行了相同的segue操作,因此多次推送

我现在已经解决了这个问题