【问题标题】:Hiding the Status bar in a particular view controller, in a TabbarViewController在 TabbarViewController 中隐藏特定视图控制器中的状态栏
【发布时间】:2015-04-09 03:41:45
【问题描述】:

我有一个TabbarViewController。在一个选项卡中,当导航到特定的ViewController(详细图像视图)时,我想隐藏状态栏。 我已阅读此链接: How to hide a status bar in iOS?

但在我的情况下,它不起作用,因为我不想在整个应用程序中隐藏状态栏,而只是在特定的ViewController 中。

有没有办法实现只在某个选项卡中隐藏滚动条?

*编辑: 我要隐藏状态栏的 ViewController 是 PageViewController。是这个问题吗?

【问题讨论】:

  • 我刚刚编辑了您的问题,以便更容易理解您的具体要求。我希望我正确理解了这个问题:)。
  • @Lea Cohen:非常感谢,我的英文不好。 :)

标签: ios objective-c statusbar tabbar


【解决方案1】:
    -(void) viewDidAppear:(BOOL)animated{
        [super viewDidAppear:YES];
        if([UIApplication sharedApplication].statusBarOrientation == UIInterfaceOrientationLandscapeLeft || [UIApplication sharedApplication].statusBarOrientation == UIInterfaceOrientationLandscapeRight){
        if ([self respondsToSelector:@selector(setNeedsStatusBarAppearanceUpdate)]){
            [self prefersStatusBarHidden];
            [self performSelector:@selector(setNeedsStatusBarAppearanceUpdate)];
            [[UIApplication sharedApplication] setStatusBarHidden:YES withAnimation:UIStatusBarAnimationSlide];
        }
        else{
            // iOS 6
            [[UIApplication sharedApplication] setStatusBarHidden:YES withAnimation:UIStatusBarAnimationSlide];
        }

    }
    else if([UIApplication sharedApplication].statusBarOrientation == UIInterfaceOrientationPortrait || [UIApplication sharedApplication].statusBarOrientation == UIInterfaceOrientationPortraitUpsideDown){
        if ([self respondsToSelector:@selector(setNeedsStatusBarAppearanceUpdate)]){
            [[UIApplication sharedApplication] setStatusBarHidden:YES withAnimation:UIStatusBarAnimationSlide];
            [self performSelector:@selector(setNeedsStatusBarAppearanceUpdate)];
        }
        else{
            // iOS 6
            [[UIApplication sharedApplication] setStatusBarHidden:YES withAnimation:UIStatusBarAnimationSlide];
        }
    }
}

-(UIStatusBarStyle)preferredStatusBarStyle{
    return UIStatusBarStyleLightContent;
}
- (BOOL)prefersStatusBarHidden {
    return YES;
}

【讨论】:

  • 谢谢,但还是不行。而我要隐藏状态栏的ViewController是PageViewController,是这个问题吗?
  • 只写下你想隐藏的这三个函数。
  • @Pratik Patel:我完全按照你说的做,但是不行……我只是看到状态栏样式改变了
  • 你使用的不是iOS 7吗?
  • 我同时使用 iOS 6.0 及更高版本
【解决方案2】:

试试下面的代码:

- (void) viewWillAppear:(BOOL)animated{
    [UIApplication sharedApplication].statusBarHidden = YES;
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-02-21
    • 1970-01-01
    • 2016-04-23
    • 1970-01-01
    • 2017-06-23
    相关资源
    最近更新 更多