我正在整合 iOS 5 的 UIAppearance 功能,为我的通用应用程序提供独特的主题。目前,我已经在我的应用程序委托中实现了一些代码来为应用程序提供自定义导航栏:
UIImage *navBarImage = [[UIImage imageNamed:@"navigationBar.png"] resizableImageWithCapInsets:UIEdgeInsetsMake(7, 7, 7, 7)];
[[UINavigationBar appearance] setBackgroundImage:navBarImage forBarMetrics:UIBarMetricsDefault];
这效果很好,并将所有导航栏从苹果的朴素风格更改为明亮的渐变风格。然而,我遇到的问题是它覆盖了一些我也不想要的风格。我的特别问题是它覆盖了 iPad 的 UIPopoverController 中的导航栏背景,从而造成了丑陋的用户体验。请告诉我如何解决它。
编辑:请注意,这是一个通用应用程序,我通过 iPad 上的 UIPopoverController 和 iPhone/iPod 上的模式视图打开图像选择器。我只想删除 iPad 弹出窗口上导航栏的自定义背景,而不是模式视图上的导航栏。
How it currently looks like:
![enter image description here](https://i.stack.imgur.com/IQIo3.png)
How I want it to look like:
![enter image description here](https://i.stack.imgur.com/cFZq7.png)
在此先感谢您的帮助,
古维
尝试使用+appearanceWhenContainedIn:
当导航栏包含在弹出窗口控制器中时,从导航栏中删除背景图像自定义的方法。像这样的东西:
[[UINavigationBar appearanceWhenContainedIn:[UIPopoverController class], nil] setBackgroundImage:nil forBarMetrics:UIBarMetricsDefault];
从文档中不清楚是否将导航栏的背景图像设置为nil
恢复其默认外观 - 如果这不起作用,您可能必须采取相反的方法,并提供您正在使用的非弹出容器视图控制器的列表+appearanceWhenContainedIn:
.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)