iOS 版本特定的 info.plist 设置

3

我正在更新一款支持iOS6的应用程序,使其适配iOS7。我已经使用UIStatusBarStyle: UIStatusBarStyleLightContent来更新状态栏为白色前景。

然而,在iOS6上,UIStatusBarStyleLightContent是新的值,因此UIStatusBarStyle会恢复到默认值UIStatusBarStyleDefault,显示iOS6默认的浅灰色和深色文本。但是,我需要我的iOS6版本使用黑色风格的UIStatusBarStyleBlackOpaque状态栏。

由于可以针对不同的设备和平台类型设置info.plist设置,例如: UIStatusBarStyle~ipadhttps://developer.apple.com/library/ios/DOCUMENTATION/iPhone/conceptual/iPhoneOSProgrammingGuide/AdvancedAppTricks/AdvancedAppTricks.html

我知道我可以通过UIApplication在运行时设置值,但这要等启动图像显示后才会生效。

希望您能够使用类似的机制来适配iOS版本?例如:

UIStatusBarStyle: UIStatusBarStyleBlackOpaque
UIStatusBarStyle~ios7: UIStatusBarStyleLightContent

然而,这并不起作用,我无法在任何地方找到有关此功能的苹果文档。我是否就此失望,并且需要忍受iOS6应用程序启动期间的丑陋白色状态栏?
编辑:刚刚在这里发现了一个类似的问题:iOS - 仅适用于iOS 6及以上版本的Info.plist中的条目? 看起来答案是否定的,这是不可能的。除非有iOS7的更新?

你意识到你的编辑给这个问题添加了一个回链吗?我认为你找回了自己的问题! - mattjgalloway
@mattjgalloway 哈哈哈,糟糕。一定是复制了错误的链接。已经修复。 - Tyson
1个回答

0

使用这个,我认为这会对你有所帮助。

if (floor(NSFoundationVersionNumber) <= NSFoundationVersionNumber_iOS_6_1) {
    // Load resources for iOS 6.1 or earlier, i.e set status bar here for previous versions 
} else {
    // Load resources for iOS 7 or later, set status bar here for ios 7 
}

谢谢,但我知道我可以在运行时更新它(实际上我已经在这样做了)。问题是在应用程序启动之后和闪屏图像显示之后才会生效。这导致它从info.plist中的设置更改为运行时的设置。我的问题具体涉及iOS特定的info.plist设置。 - Tyson
在启动时(当闪屏出现时),通过在info.plist中将“状态栏最初隐藏”设置为YES来隐藏状态栏,然后在运行时更新状态栏,实际上更好,因为在info.plist中没有任何字段可以解决您指定的问题。 - Mehul Thakkar

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接