故事板 - 弹出到视图控制器然后推送导致多次推送
Posted
技术标签:
【中文标题】故事板 - 弹出到视图控制器然后推送导致多次推送【英文标题】:Storyboard - Popping to a View Controller then Pushing Causes multiple pushes 【发布时间】:2014-12-01 19:21:52 【问题描述】:在目标 C/ios 中;
我们有一个类似的流程(在 xcode 故事板中设置);
菜单视图控制器 -> 输入代码 -> 处理/验证 -> 显示失败的代码页面 em>
(->) 箭头表示情节提要中的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 次。
我需要解除转场吗?我尝试清空导航视图控制器堆栈,甚至尝试删除它的最后一个活动视图控制器——这两个都返回一个空白或黑色的窗口视图框架。
为什么在导航堆栈中弹出视图控制器会影响我的视图控制器中的 segues,以至于每当我尝试执行 push segue
操作时,它会尝试将多个视图控制器推送到堆栈上?
【问题讨论】:
这 3 或 4 次推送又推送到了哪里?如果在这些多次推送之后记录导航控制器的 viewControllers 数组,它会显示什么? 解决了这个问题。原来我在情节提要中有一个按钮进行推送,然后我的代码中有另一个推送序列 【参考方案1】:原来我遇到了以下问题
按钮按下会导致情节提要中的 segue 动作 我在按钮上的代码中执行了相同的 segue 操作,因此多次按下
我现在已经解决了这个问题
【讨论】:
以上是关于故事板 - 弹出到视图控制器然后推送导致多次推送的主要内容,如果未能解决你的问题,请参考以下文章