我在.xib中添加了一个导航栏。 我这样做是因为我想定制很多东西。我希望我的导航控制器在该屏幕中使用该导航栏。
我创建了名为navBar的插座并执行了:
[self.navigationController.navigationBar = navBar;
但它说导航栏是只读的。是否可以将我现有的导航控制器与我添加到屏幕的导航栏链接起来?
答案 0 :(得分:1)
听起来你可能实际上并不想使用UINavigationBar。正如它在参考文档中所述:
UINavigationBar类实现用于导航分层内容的控件。它是一个条形图,通常显示在屏幕顶部,包含用于在层次结构中上下导航的按钮。主要属性是左(后)按钮,中心标题和可选的右按钮。您可以为每个选项指定自定义视图。
因此,如果你计划的自定义设置不仅仅是添加按钮,更改它的颜色/背景,不透明度,隐藏等等。你可能最好创建一个模仿外观和放大器的UIView。 ;感觉导航栏。
以下是如何提供your UIView that gradient look of a navigation bar的示例。
它更加灵活,实际上很容易做到但是你在你面前有很多阅读和测试:)。
如果它只是按钮而你想要添加你,那么最好不要使用UIToolbar代替
答案 1 :(得分:0)
你做不到。由于导航控制器的导航栏嵌入了 lot 设置,因此它是一个只读属性,您无法更改它。
您要通过界面构建器实现的目标是什么?我的意思是,使用最新的API,通过自定义原始navcontroller的导航栏,通过几行代码完成所需的一切应该很简单。
答案 2 :(得分:0)
您不会在界面构建器中管理导航栏。此外,您不会尝试设置导航控制器的navigationBar属性。
要进行更改,您可以更改navigationBar的navigationItem属性
[self.navigationController.navigationBar setItems:newNavItems];
您还可以对navigationBar进行其他更改,例如设置背景图片或使其变为半透明
self.navigationController.navigationBar.translucent = true;
[self.navigationController.navigationBar setBackgroundImage:img forBarMetrics:barMetrics];