如何一次推送一些带有 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 的视图控制器的主要内容,如果未能解决你的问题,请参考以下文章
iOS如何获取对带有segue的storyboard容器中嵌入的视图控制器的引用?