3

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

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

当我在 XCode 中运行我的应用程序时(无论是在模拟器中还是在插入计算机的实际设备上),效果都很好,并且显示了我的自定义背景。但是,当我在 TestFlight 上运行应用程序的发布版本时,会显示标准的浅蓝色导航栏。在弄乱了setBackgroundImage方法的放置但没有运气之后,我开始相信它与“调试”与“发布”设置的差异有关,但我不知道这些设置会在哪里导致这个导航栏问题。

对此问题的任何帮助或见解(或我将如何调试它)将不胜感激。先感谢您!

4

2 回答 2

6

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

要么将代码更改为,

[[UINavigationBar appearance] setBackgroundImage:[UIImage imageNamed:@"navBar"] forBarMetrics:UIBarMetricsDefault];
于 2012-12-11T06:37:54.373 回答
1

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

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

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

于 2012-12-11T06:28:11.883 回答