0

我有 rootViewController - UINavigationController。如你所知UINavigationControllerUINavigationBar在 iOS 7UINavigationBar中可以使用 barPosition topAttached。我想通过单击按钮来隐藏 ON/OFF 状态栏。但我也希望它UINavigationBar应该始终是 barPositionTopAttached。

- (BOOL)prefersStatusBarHidden {
   return __statusBarHidden;
}

- (IBAction)tapShowPhotosButton:(id)sender {
    __statusBarHidden = !__statusBarHidden;
    [self setNeedsStatusBarAppearanceUpdate];
}

现在从顶部UINavigationBar更改,依此类推。barPositiontopAttached

4

2 回答 2

0

试试这个:

- (IBAction)tapShowPhotosButton:(id)sender 
{
    __statusBarHidden = !__statusBarHidden;
    [[UIApplication sharedApplication] setStatusBarHidden:__statusBarHidden withAnimation:UIStatusBarAnimationSlide];
    [self setNeedsStatusBarAppearanceUpdate];
}

导航栏应随状态栏自动移动

于 2014-06-22T11:28:35.983 回答
0

我写信给技术支持并得到下一个答案:

如文档中所述,当栏需要知道其在新窗口中的位置时,将调用 -positionForBar 。状态栏隐藏或取消隐藏时不会调用。导航控制器处理调整导航栏的大小以响应状态栏的更改。不幸的是,UINavigationController 没有提供任何 API 来自定义导航栏调整大小的行为。

于 2014-06-23T08:35:08.303 回答