如何为所有 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的主要内容,如果未能解决你的问题,请参考以下文章

如何为所有会话创建配置单元 UDF

如何为所有子图设置一个颜色条

使用 Eclipse:如何为所有 C/C++ 项目添加包含路径和库

如何为所有单元格启用编辑模式,而不仅仅是可见单元格

如何为kafka主题分配优先级

如何为单个联系人创建 .vcf 文件?