【发布时间】:2016-07-31 07:17:26
【问题描述】:
我想在我的 Swift 应用程序中创建以下用户流程:
- 用户点击按钮
- 一个模态视图弹出一个选项。用户选择一个选项。
- 第二个视图出现另一个选项(使用“显示”过渡,因此用户可以按 更改选项 #1)。用户选择第二个选项。
- 第二个模态视图切换回原始视图(具有按钮)。
为此,我创建了以下结构:
--> NC1 --> VC1 --modal-> NC2 --> VC2 --show-> VC3 (NC = UINavigationController,
^ | VC = UIViewController)
| |
----Segue I'm trying to achieve-----
我试图通过将 VC1 的引用一直传递到 VC3,然后在 VC3 中调用以下代码来一直弹回 VC1:
override func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {
// Perform Segue
print("Trying to segue")
rootController!.navigationController!.popToRootViewControllerAnimated(true)
tableView.deselectRowAtIndexPath(indexPath, animated: true)
}
其中rootController 是对VC1 的引用。不幸的是,segue 没有发生。第二个模态视图保留在屏幕上,但我打印了“尝试转场”消息。
我是否尝试以正确的方式实施此用户流程?如果是这样,有什么建议为什么我不能在另一个导航控制器中弹出到根视图?
【问题讨论】:
-
在您的导航控制器中有一个名为 viewControllers 的属性,其中包含您已导航的所有控制器,删除您想要跳过的那些
标签: ios swift unwind-segue