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

标签 ios xcode uinavigationcontroller uinavigationbar testflight

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

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

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

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

最佳答案

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

要么把代码改成,

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

关于ios - 自定义 UINavigationBar 适用于模拟器,但不适用于已发布版本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13814654/

相关文章:

ios - 使用 UIAttachmentBehavior 和自动布局约束拖动 UIView

iOS 图像延伸到应用程序之外

ios - 如何在文本字段中找到 UITextInput 创建的字符串(或长度)? ( swift )

ios - Xcode: Storyboard更改初始 View Controller

iphone - 如何通过UINavigationController设置一个navigationController?

ios - UINavigationBar -pushNavigationItem 在将新 Controller 推送到 UINavigationController 堆栈时从不调用

ios - 解析嵌套的 JSON SWIFT 4

iphone - 在 XIB 内的分段 Controller 中本地化文本

ios - 导航到第二个 View Controller 时选项卡栏隐藏

iphone - UINavigationController 泄漏/理解 popViewController