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

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

【问题讨论】:

    标签: ios uinavigationcontroller uistoryboard


    【解决方案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。

    希望这能解决您的问题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-12-19
      • 2013-01-19
      • 2013-01-21
      • 2010-12-11
      • 1970-01-01
      • 1970-01-01
      • 2018-05-04
      • 1970-01-01
      相关资源
      最近更新 更多