iOS 6正在发生以下情况。
我正在播放可以在potrait或横向模式下播放的视频。按下视频的完成按钮后,我将以编程方式将屏幕设置为potrait模式。
问题是当我打开应用程序时,我有黑色状态栏。
当我只播放视频作为potrait时,我仍然会看到如下所示的黑色状态栏。
现在当我播放视频并在播放完毕后移动旋转并单击完成按钮后,我在potrait模式下制作应用程序。 但现在我的状态栏变为浅黑色(可能是BlackTransculent)。
此外,如果您看到,我会看到剩下的黑色 。
知道出了什么问题吗?这实际上让我发疯了。
以下是我正在使用的代码。
在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];
这个问题仍然存在......
答案 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];
}
}