我的应用允许用户导入视频并执行一些其他操作,例如发送电子邮件。当我调用标准代码来呈现这些视图控制器时(下面的示例),结果是可滚动元素出现在状态栏下面,这是可怕的。我自己的View Controllers不会受到这个故障的影响。问题似乎发生在iOS 7和8中。
我看到很多相关的问题,但是大多数问题都涉及处理你自己的视图控制器中的状态栏,我已经做过了。我的问题是处理我从操作系统获得的视图控制器。
知道我们可能会做什么(例如在故事板中)导致这种情况吗?我忘了或错过了一个明显的步骤吗?这非常丑陋和分散注意力,修复将是非常棒的。我在其他任何应用中都没有看到这一点。
UIImagePickerController *mediaUI = [[UIImagePickerController alloc] init];
mediaUI.sourceType = UIImagePickerControllerSourceTypePhotoLibrary;
// Displays saved movies from the Camera Roll album.
mediaUI.mediaTypes = @[(__bridge NSString *)kUTTypeMovie];
mediaUI.allowsEditing = YES;
mediaUI.delegate = self; //with or without this, the glitch appears
[self presentViewController:mediaUI animated:YES completion:nil];
这就是它的样子:
答案 0 :(得分:0)
我能找到的唯一解决方案是删除状态栏。这可能是通过davidisdk对this question的回答来实现的,但我是通过继承UIImagePicker(以及其他一些类)来实现的:
@interface NoStatusBarImagePickerController : UIImagePickerController
@end
@implementation NoStatusBarImagePickerController
- (BOOL)prefersStatusBarHidden {
return YES;
}
- (UIViewController *)childViewControllerForStatusBarHidden {
return nil;
}
@end