在目标 C/iOS 中;
我们有一个类似的过程(在 xcode 故事板中设置);
Menu View Controller -> Enter in a code -> Process/Validate -> Present a Failed Code page
(->) 箭头表示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吗?我尝试清空导航视图控制器堆栈,甚至尝试摆脱它的最后一个活动视图控制器——这两个都返回一个空白或黑色的窗口视图框架。
为什么在导航堆栈中弹出视图控制器会影响我的视图控制器中的 segues,以至于每当我尝试执行某个push segue
操作时,它都会尝试将多个视图控制器推送到堆栈上?