我有rootViewController - UINavigationController
。
如您所知UINavigationController
有UINavigationBar
。
在iOS 7中UINavigationBar
可以使用barPosition topAttached。
我想通过单击按钮隐藏ON / OFF statusBar。但我也希望UINavigationBar
始终是barPositionTopAttached。
- (BOOL)prefersStatusBarHidden {
return __statusBarHidden;
}
- (IBAction)tapShowPhotosButton:(id)sender {
__statusBarHidden = !__statusBarHidden;
[self setNeedsStatusBarAppearanceUpdate];
}
现在UINavigationBar
已将barPosition
从topAttached
更改为顶部,依此类推。
答案 0 :(得分:0)
试试这个:
- (IBAction)tapShowPhotosButton:(id)sender
{
__statusBarHidden = !__statusBarHidden;
[[UIApplication sharedApplication] setStatusBarHidden:__statusBarHidden withAnimation:UIStatusBarAnimationSlide];
[self setNeedsStatusBarAppearanceUpdate];
}
导航栏应自动移动状态栏
答案 1 :(得分:0)
我写信给技术支持并得到下一个答案:
如文档中所述,当栏需要知道其在新窗口中的位置时,会调用-positionForBar。状态栏隐藏或取消隐藏时不会调用它。导航控制器处理调整导航栏的大小以响应状态栏更改。不幸的是,UINavigationController没有提供任何API来自定义导航栏调整大小的行为。