如何一次推送一些带有 segue 的视图控制器

Posted

技术标签:

【中文标题】如何一次推送一些带有 segue 的视图控制器【英文标题】:How to push some viewcontrollers with segue at a time 【发布时间】:2013-09-27 05:13:09 【问题描述】:

当 NavigationController 有 3 个视图控制器(A、B、C)时。 我想一次使用 segue 从 A 通过 B 移动到视图控制器 C。 在这种情况下,最佳做法是什么?

【问题讨论】:

【参考方案1】:

我相信你需要在序列 A->B 完成后手动执行序列 B->C(例如在 viewDidAppear 中)。

【讨论】:

如果导航控制器有 10 个视图控制器,我是否需要编写代码将 viewDidAppear 处的下一个视图控制器推送到所有这些控制器中? 是的。但是你可以创建一些基类并在祖先的 viewDidAppear 中只编程一次。 顺便说一句。我不知道您正在编写什么应用程序,但分页滚动可以更好地满足您的需求吗? A 是***菜单。 B是子菜单。 C 也是菜单。它适用于商业应用程序。我想去C,当收到远程推送通知。 我明白了。在这种情况下,仅将 C 压入堆栈是可以接受的行为。当您点击返回时,您将返回到 A。用户真的不想再点击 X 次。【参考方案2】:

使用此代码:

UINavigationController *navController = [self navigationController];
[navController performSegueWithIdentifier:@"SegueIdentifier" sender:self];

我假设你有一个带有适当标识符的 segue。

【讨论】:

这并没有回答如何首先对 B 执行 segue 并紧接着对 C 执行 segue 的问题。 我想在移到 B 后移到 C。(A->B->C) 有什么想法吗?【参考方案3】:

我无法理解从 A-C 走的逻辑,而是按照 A-B-C 的方式移动。

但这可以通过执行 seague A-B 来完成。在 B 中使用 viewWillAppear() 或 viewDidload 方法为 C 执行 segue。

希望这能解决您的问题。

【讨论】:

以上是关于如何一次推送一些带有 segue 的视图控制器的主要内容,如果未能解决你的问题,请参考以下文章

如何在推送segue后让源视图控制器不会消失?

iOS如何获取对带有segue的storyboard容器中嵌入的视图控制器的引用?

如何从主视图控制器在详细视图控制器中推送新视图?

使用 Storyboard Segue iOS 将数据传递给视图控制器

UITableView推送segue多次触发

自定义推送 segue 动画