我的应用程序带有下拉菜单,作为titleView
的{{1}}。当用户选择下拉菜单中的项目时,整个视图应切换内容,但NavigationController
应保持不变。 NavigationBar 不应重新加载任何数据,titleView 应保留下拉菜单。
打开应用时的原始视图:
触摸下拉菜单时的视图:
我目前看到了几种解决方法:
为每个选项设置NavigationBar
,执行segue并重新加载数据。
UIViewController
设置一个segue标识符,这意味着如果我的下拉菜单中有15个选项,我将有210个segue标识符四处走动。我还必须重新加载所有ViewController
数据。 根据需要以编程方式添加和删除NavigationBar
,UIButtons
和UILabels
。
UIWhatevers
内部创建大量代码,事情可能会变得难以调试。ViewController
永远不会重新加载。 添加一个容器,并根据需要为每个项目嵌入一个唯一的NavigationBar
。
ViewController
中,我必须在一个控制器内管理嵌入式ViewController
的逻辑ViewController
永远不会重新加载。其他人提出的完全不同的方法,因为我不知道最有效的方法。
因此,总之,在NavigationBar
中切换主要内容时,保持NavigationBar
状态的最有效方法是什么?
答案 0 :(得分:1)
选项3是您列出的三个中最好的。选项1和2将越来越复杂,您想要添加的视图控制器越多。将其与UINavigationController
,UITabBarController
或UIPageViewController
进行比较,为了处理10个屏幕而不是100个屏幕,这不需要更复杂。
我建议创建一个自定义容器视图控制器(Apple's Reference)
我看到实现这两个方法的直接方法:
UIViewController
- 这就是Apple的容器视图控制器的实现方式UITabBarController
- 我已成功完成此操作,继承UITabBarController
以在顶部而非底部显示自定义标签栏。