自定义UINavigationBar适用于模拟器,但不适用于已发布的版本

时间:2012-12-11 06:13:03

标签: ios xcode uinavigationcontroller uinavigationbar testflight

我希望能够深入了解过去几个小时我一直在努力解决的问题。我通过调用以下方法在application:DidFinishLaunchingWithOptions中配置了自定义UINavigationBar:

[[UINavigationBar appearance] setBackgroundImage:[UIImage imageNamed:@"NavBar"] forBarMetrics:UIBarMetricsDefault];

当我在XCode中运行我的应用程序时(无论是在模拟器中还是在插入计算机的实际设备上),这都很有效,并显示我的自定义背景。但是,当我在TestFlight上运行应用程序的发布版本时,会显示标准的浅蓝色导航栏。在没有运气的情况下放置setBackgroundImage方法后,我开始相信它与“调试”与“发布”设置的差异有关,但我对这些设置会导致这种情况的位置毫无头绪navigationBar问题。

对此问题的任何帮助或见解(或我将如何进行调试)将不胜感激。提前谢谢!

2 个答案:

答案 0 :(得分:6)

正如我的评论中所提到的,当您遇到类似问题时,您应该检查图像的名称并确保它不区分大小写。您可能添加了名为navBar的图片,但您在项目中使用NavBar。这就是这个问题的原因。模拟器不区分大小写,但设备是。

将代码更改为,

[[UINavigationBar appearance] setBackgroundImage:[UIImage imageNamed:@"navBar"] forBarMetrics:UIBarMetricsDefault];

答案 1 :(得分:1)

在设备中,图像名称被视为区分大小写。您还需要为其提供扩展名。

[[UINavigationBar appearance] setBackgroundImage:[UIImage imageNamed:@"NavBar.**png**"] forBarMetrics:UIBarMetricsDefault];

请检查确切的名称和扩展名。