【问题标题】:Swift. NavigationController. Conditionally change the order of child viewControllers迅速。导航控制器。有条件地改变子viewControllers的顺序
【发布时间】:2018-11-15 12:12:29
【问题描述】:

如果我有一个带有带有 2 个子视图控制器(vcA 和 vcB)的 navigationController 的故事板,其中 vcA 设置为 navigationController 的根 viewController,并且故事板 segue 将 vcA 连接到 vcB(vcA 和 vcB 显示 alternate查看同一对象的方式)。

当应用程序启动时取决于用户的偏好,改变导航堆栈中子视图控制器的顺序是否是一种合理的设计模式(如果是,我将如何做)。如果用户更喜欢以 vcB 中呈现的方式查看对象,我是否可以在应用程序启动时以某种方式覆盖情节提要中的顺序并使 vcB 成为 navigationController 的根 viewController。因此,如果用户偏好是“vcB 视图”,则 navigationControllers 的顺序是 navigationController -> vcB vcA,而正常情况下 navigationController 的顺序是 navigationController -> vcA vcB。

理想情况下,我希望继续使用情节提要来帮助配置导航栏按钮等

如果这不可能或不推荐,那么在应用启动时有条件地向用户显示不同的 navigationController 子 viewController 的推荐方式是什么。

【问题讨论】:

    标签: ios swift uinavigationcontroller uistoryboardsegue rootviewcontroller


    【解决方案1】:

    你应该可以这样做:

    1) 除了图片中显示的 segue 之外,创建另一个从 navController 到 vcB 的 Push segue,以及另一个从 vcA 到 vcB 的 Push sugue。

    2) 使用 performSegue(withIdentifier: "segue_name", sender: self) 在开始时有条件地加载 vcA 或 vcB。

    3) 在vcA和vcB中使用performSegue根据相同的条件相互过渡。

    【讨论】:

    • 谢谢。我还试图了解与在情节提要中完成布局的视图控制器继承相比,这样做是否有任何其他后果。如果我以不同的顺序手动初始化视图控制器,那么它在情节提要中的布局是否会受到任何其他影响,即状态恢复复杂性、在代码中创建的视图控制器之间的导航、使用展开转场的能力等
    猜你喜欢
    • 2016-02-24
    • 1970-01-01
    • 2018-03-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-08-14
    • 1970-01-01
    相关资源
    最近更新 更多