Xcode 4.6 中 iOS7 的状态栏

Posted

技术标签:

【中文标题】Xcode 4.6 中 iOS7 的状态栏【英文标题】:statusBar for iOS7 in Xcode 4.6 【发布时间】:2013-08-22 08:58:59 【问题描述】:

我想解决 ios7 中 statusBar 的问题。我找到了this post,这个解决方案在 Xcode 5 中效果很好。但是当我在 Xcode 4.6.3 中尝试这个代码时,我得到了 2 个错误:

    No visible @interface for 'MyController' declares the selector 'setNeedsStatusBarAppearanceUpdate'; Use of undeclared identifier 'UIStatusBarStyleLightContent'

第一个问题已通过使用此代码解决:[self performSelector:@selector(setNeedsStatusBarAppearanceUpdate)];,但我无法解决第二个错误。

【问题讨论】:

如果您针对 SDK6 构建并在 iOS7 上运行,则无需执行任何操作,因此您可以使用 respondsToSelector 查看 setNeedsStatusBarAppearanceUpdate 是否存在。仅当您针对 SDK7 构建并在 iOS7 上运行时,状态栏行为才会改变。 @ValentinShamardin 不是我,但可能是因为 iOS 7 仍受保密协议保护。 是的,周围有很多 NDA 警察,除了拍你的手腕,别无他法……!! ,但是您没有透露任何人不费吹灰之力就无法发现的任何内容。 【参考方案1】:

这些是在 XCode 4.6.3 中无法编译的 iOS 7 功能,而 XCode 4.6.3 正在尝试针对 iOS 6 进行编译。您需要有条件地将它们编译出来。

用以下代码包装有问题的代码:

#if __IPHONE_OS_VERSION_MAX_ALLOWED >= 70000
    //iOS 7 only stuff here
#endif 

【讨论】:

以上是关于Xcode 4.6 中 iOS7 的状态栏的主要内容,如果未能解决你的问题,请参考以下文章

statusBar状态栏_02

iOS7 无法隐藏状态栏

从PhoneGap Camera API返回时如何隐藏iOS7状态栏?

修复 ios 7 上隐藏状态栏的错误

使用 UISwitch 切换 iOS 7 状态栏

iOS 7 UI 变化:状态栏和导航控制器