Rom*_*mes 12 xcode uiviewcontroller ios xcode-storyboard
有没有办法在Xcode使用Storyboard中Interface Builder完全禁用状态栏时,这样当我创建一个新的时候,View Controller我不必将"状态栏"从推断变为无.
Ron*_*ers 24
这是一个完整的iOS 7兼容解决方案(不兼容iOS 6,因为太多东西已经改变)
来自Apple doc':信息属性列表主要参考':
UIViewControllerBasedStatusBarAppearance(Boolean - iOS)指定状态栏外观是否基于状态栏下当前视图控制器首选的样式.当此键不存在或其值设置为YES时,视图控制器确定状态栏样式.当键设置为NO时,视图控制器(或应用程序)必须使用UIApplication对象显式设置状态栏样式.iOS 7.0及更高版本支持此密钥.
因此,默认情况下,此键不存在(=与添加键相同的行为,但将其设置为YES):在这种情况下,每个视图控制器通过覆盖某些方法来确定状态栏行为 - 请参阅下文.
1)全局显示/隐藏所有应用程序的viewControllers的状态栏
首先是对您的问题的完整答案,为您的所有应用程序viewControllers制作单个全局显示/隐藏设置
步骤1:在您的frameWork-Info.plst'文件中,添加"查看基于控制器的状态栏外观"键并将其设置为"否".将此键设置为"NO"将使iOS 7不会调用方法'prefersStatusBarHidden'和'preferredStatusBarUpdateAnimation',请参见下文.
第2步:在项目设置 - >常规 - >部署信息中,在应用程序启动期间选择"显示/隐藏"
就是这样:现在您可以全局显示或隐藏符合iOS 7的状态栏
2)让所有viewControllers都可以单独控制状态栏(= iOS 7默认值)
步骤1:不添加密钥,或添加密钥,但将其设置为YES,以获取iOS 7的默认行为
第2步:在每个viewController中,您现在可以通过覆盖来确定是否显示/隐藏状态栏:
因此,您需要覆盖这两个方法来控制状态栏行为,并为您的应用程序返回适当的值(请参阅doc ref了解所有可能的值,这已明确说明).
控制应用程序启动期间的行为(显示第一个控制器),在项目设置下设置显示/隐藏 - >常规 - >部署信息
请注意,iOS 7仅支持单一外观样式(UIStatusBarStyleLightContent),所有其他样式均已弃用!
因此,您可以使用按钮轻松打开/关闭控制杆 - 尽可能灵活!
例如,向viewController添加一个按钮,然后使用以下代码通过动画切换栏的开启/关闭状态.
- (BOOL)prefersStatusBarHidden
{
return self.isStatusBarHidden;
}
- (IBAction)buttonToggleStatusBar:(UIButton *)sender
{
[UIView animateWithDuration:1.0 animations:^{
self.isStatusBarHidden = !self.isStatusBarHidden;
[self setNeedsStatusBarAppearanceUpdate];
}];
}
Run Code Online (Sandbox Code Playgroud)
您可以对首选动画执行相同操作
高级注释:如果要为@property'isStatusBarHidden'设置默认值,则需要在'initWithCoder'(使用Storyboard时调用)而不是viewDidLoad中设置.原因是在'viewDidLoad'之前调用'prefersStatusBarHidden'和'preferredStatusBarUpdateAnimation'
Jor*_*ers 12
你是否已经检查是否设置UIStatusBarHidden到YES你的Info.plist的作品?请参阅文档:http:
//developer.apple.com/library/mac/documentation/General/Reference/InfoPlistKeyReference/Articles/iPhoneOSKeys.html#//apple_ref/doc/uid/TP40009252-SW15
这将隐藏应用程序启动时的状态栏.
| 归档时间: |
|
| 查看次数: |
19449 次 |
| 最近记录: |