什么子类化(如果有的话)定制UINavigationBar的外观?

时间:2015-02-06 19:14:14

标签: ios ipad uinavigationcontroller uinavigationbar

我想通过在右侧添加自定义背景颜色,背面图标和按钮来自定义我的UINavigationBar视图。我已经看到了各种解决方案,我希望能够支持iOS7和iOS8 +。在哪里做标准的地方:

  • 应用代表,
  • 一个UINavigationBar委托,
  • 一个UINavigationController委托,
  • 还是其他什么?

感谢阅读!

1 个答案:

答案 0 :(得分:1)

有几种方法可以做到这一点,虽然我可以提供的唯一方法就是选择一个而不是另一个是Apple给出的例子。

导航控制器及其UI栏非常可定制,几乎没有任何东西无法更改(从UI角度来看)。

有几个例子只是说在AppDelegate中转储代码。我自己这样做了。虽然我不能说我遇到了问题,但看起来确实有点奇怪/混乱。

所以在这种情况下,我会按照Apple shows us all how to do it的方式进行操作,并将自定义项添加到要查看自定义项的VC的.m文件中(您应该下载示例项目并使用它进行播放) )。

这样做似乎有点干净,您可以指定哪个VC获取哪个外观(而不是让所有VC具有相同的导航栏)。

提供一些代码,说明如何进行所请求的自定义:

自定义背景颜色

[[UINavigationBar appearance] setBarTintColor:[UIColor blueColor]];

自定义后退图标:

[[UINavigationBar appearance] setBackIndicatorImage:[UIImage imageNamed:@"some_btn_image.png"]];
[[UINavigationBar appearance] setBackIndicatorTransitionMaskImage:[UIImage imageNamed:@"some_btn_image.png"]];

右侧按钮:

UIBarButtonItem *addButton = [[UIBarButtonItem alloc] initWithImage:[UIImage imageNamed:@"Email"]
                                                                  style:UIBarButtonItemStyleBordered target:self action:@selector(action:)];

self.navigationItem.rightBarButtonItem = addButton;

我尽我所能用我的数据回答了这个问题。我认为一个普遍得体的答案总比没有答案好(我看到你有点不耐烦了。)