在横向模式下关闭视频后状态栏变为渐变

时间:2014-01-26 13:46:52

标签: objective-c ios6 orientation uiinterfaceorientation uistatusbar

iOS 6正在发生以下情况。

我正在播放可以在potrait或横向模式下播放的视频。按下视频的完成按钮后,我将以编程方式将屏幕设置为potrait模式。

问题是当我打开应用程序时,我有黑色状态栏。

当我只播放视频作为potrait时,我仍然会看到如下所示的黑色状态栏。

enter image description here

现在当我播放视频并在播放完毕后移动旋转并单击完成按钮后,我在potrait模式下制作应用程序。 但现在我的状态栏变为浅黑色(可能是BlackTransculent)。

enter image description here

此外,如果您看到,我会看到剩下的黑色

知道出了什么问题吗?这实际上让我发疯了。


编辑1

以下是我正在使用的代码。

在viewcontroller.m

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
    return (interfaceOrientation == UIInterfaceOrientationPortrait);
}

- (NSUInteger)supportedInterfaceOrientations
{
    return UIInterfaceOrientationMaskPortrait;
}

- (BOOL)shouldAutorotate
{
    return NO;
}

在CustomNavigation.m

- (BOOL)shouldAutorotate
{
    return [self.visibleViewController shouldAutorotate];
}


- (NSUInteger)supportedInterfaceOrientations
{
    if (![[self.viewControllers lastObject] isKindOfClass:NSClassFromString(@"ViewController")])
    {
        return UIInterfaceOrientationMaskAllButUpsideDown;
    }
    else
    {
        return [self.topViewController supportedInterfaceOrientations];
    }
}

注意:

我不再使用下面的代码了。

[[UIDevice currentDevice] performSelector:NSSelectorFromString(@"setOrientation:") withObject:(id)UIInterfaceOrientationPortrait];

这个问题仍然存在......

问题是当我处于横向模式并单击完成按钮时。

1 个答案:

答案 0 :(得分:0)

这很奇怪......

经过进一步调查后,我注意到在横向模式下播放视频时,状态栏会变为透明状态。

我以编程方式尝试的是视频播放完成后,将状态栏设置为黑色[[UIApplication sharedApplication] setStatusBarStyle: UIStatusBarStyleBlackOpaque];,但是也没有效果。

所以我所做的就是当用户点击按钮时,我将其设置为黑色并且它正在工作。不确定是什么问题。

- (IBAction)takeMeBackAction:(id)sender {
    //    [self takeMeDownAction:nil];

    if (IS_DEVICE_RUNNING_IOS_6_OR_BELOW()) {
        [[UIApplication sharedApplication] setStatusBarStyle: UIStatusBarStyleBlackOpaque];
    }
}