在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
操作时,它都会尝试将多个视图控制器推入堆栈?
答案 0 :(得分:0)
原来我遇到了以下问题
按下按钮会在故事板中导致segue操作 我在按钮上的代码中执行了相同的segue操作,因此多次推送
我现在已经解决了这个问题