0

这可能很简单..但我不知道这里的最佳做法是什么。

我有一个带有 4 个选项卡的 tabbarcontroller,其中 3 个应该是 UINavigationController,另一个也应该有 UINavigationBar,但不应该是导航控制器本身。现在我想给 UINavigationBar 一个色调和一个操作按钮。我想在界面生成器中执行此操作。navBar 应该始终是同一个,我只想创建一次。

但我究竟会在哪里做呢?我会创建一个仅包含 UINavigationBar 的 .xib 文件并以某种方式链接到该文件吗?

我在这里很困惑,大多数教程只讨论一个导航控制器的导航栏,但在我的情况下,我需要不同的视图控制器使用相同的栏。

4

1 回答 1

0

NavBar 与 navigationController 一起提供,也可以单独提供。它是 UIView 的子类。

您不能简单地与所有控制器和非导航控制器共享您的导航栏。我的意思是导航栏的一个实例。您甚至不能为 navigationController 设置导航栏。它只是可读的。

据我了解,您正在尝试使每个控制器中的导航栏看起来都一样,对吗?
因此,您可以例如子类化 UINavigationController 并在init方法中根据需要对其进行设置,然后初始化此子类以将其添加到视图中。

但是非 UINavigationController navBar 呢?
好吧,这很简单:只需将您的子类 navigationController 添加到该选项卡。您不必将其用作 NavController。您只需将视图添加到他的视图中,就像添加到标准 ViewController 中一样。

于 2012-09-08T11:28:00.397 回答