gpt4 book ai didi

ios - 保持导航 Controller 的状态,只改变 View

转载 作者:可可西里 更新时间:2023-11-01 02:16:18 25 4
gpt4 key购买 nike

我有一个带有下拉菜单的应用程序作为我的 NavigationControllertitleView。当用户选择下拉菜单中的一项时,整个 View 应该切换内容,但是,NavigationBar 应该保持不变。 NavigationBar 不应重新加载任何数据,而 titleView 应保持为下拉菜单

打开应用时的原始 View :

Original View

触摸下拉菜单时的 View :

Drop Down Menu

我目前看到了一些解决这个问题的方法:

  1. 为每个选项设置一个 UIViewController,执行 segue,并重新加载数据。

    • 为什么这样不好:我必须为每个 ViewController 设置一个 segue 标识符,这意味着如果我的下拉菜单中有 15 个选项,我将有周围有 210 个 segue 标识符。我还必须重新加载我所有的 NavigationBar 数据。
    • 为什么这样好:我将有一个清晰的区域来设置每个单独的 View 。
  2. 根据需要以编程方式添加和删除 UIButtonsUILabelsUIWhatevers

    • 为什么这样不好:这将在一个 ViewController 中创建大量代码,并且调试起来会很困难。
    • 为什么这样好: NavigationBar 永远不会重新加载。
  3. 添加容器并根据需要为每个项目嵌入唯一的 ViewController

    • 为什么这样不好:我的所有工作仍将在主 ViewController 中进行,我必须管理嵌入式 ViewController< 的逻辑 在一个 Controller 内。
    • 为什么这样好: NavigationBar 永远不会重新加载。
  4. 别人建议的完全不同的方法,因为我不知道最有效的方法。

因此,总而言之,在我的 View 中切换主要内容时,维护 NavigationBar 状态的最有效方法是什么?

最佳答案

选项 3 是您列出的三个选项中最好的。您要添加的 View Controller 越多,选项 1 和 2 将变得越来越复杂。将其与 UINavigationControllerUITabBarControllerUIPageViewController 进行比较,它们不需要更复杂即可处理 10 个屏幕而不是 100 个屏幕。

我建议创建一个自定义容器 View Controller ( Apple's Reference )

我看到了 2 种直接的实现方法:

  1. 子类化 UIViewController - 这就是 Apple 的容器 View Controller 的实现方式
  2. 子类 UITabBarController - 我已经成功完成此操作,子类化 UITabBarController 以在顶部而不是底部显示自定义标签栏。

关于ios - 保持导航 Controller 的状态,只改变 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38258035/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com