如何为所有 UIViewControllers 使用相同的 UINavigationBar
Posted
技术标签:
【中文标题】如何为所有 UIViewControllers 使用相同的 UINavigationBar【英文标题】:How to use same UINavigationBar for all UIViewControllers 【发布时间】:2015-06-25 18:31:07 【问题描述】:在我的应用程序中,我必须为所有 UIViewControllers
显示相同的 NavigationBar
。这个NavigationBar
有三个按钮,这三个按钮将充当TabBar
的功能,即每个选项卡都有自己的堆栈循环。我用三个按钮为NavigationBar
创建了自定义视图,但是在将此自定义视图添加到 HomeViewController 之后,我必须为所有其他视图控制器手动添加此自定义视图。我不想这样做。
有什么简单的方法可以实现吗?
【问题讨论】:
请在投反对票之前提供您的答案,如果重复,请告诉我。 【参考方案1】:我想到了几个想法。首先,您可以使用 view controller containment 并且实际上有 1 个控制器来实现您的自定义导航栏,然后根据需要换出包含的控制器。
如果这不可行,您可以简单地使用继承,并让所有自定义控制器从具有导航栏的控制器继承。
【讨论】:
【参考方案2】:另一种选择是编写自己的 UINavigationController 子类。我不确定您是否可以覆盖 UNNavigationItem 行为,但如果可以,您可以这样做——而不是 UINavigationController 采用其子 UINavigationItem 来更新其自己的 UINavigationBar,UINavigationBar 可能只是保持不变,就像你一样'期待/希望。
【讨论】:
以上是关于如何为所有 UIViewControllers 使用相同的 UINavigationBar的主要内容,如果未能解决你的问题,请参考以下文章