ABPeoplePickerNavigationController和UIImagePickerController无法在ipad iOS7上正确显示

Dan*_*yan 12 objective-c ipad ios ios7

当我尝试使用"ABPeoplePickerNavigationController"或"UIImagePickerController"时,在大多数情况下它将无法正确加载.它将显示屏幕的一部分(透明),从iOS 7(ipad)的屏幕中间开始,用于模拟器和设备(下面的屏幕截图).在iOS 8中,一切正常.

这是我用于ABPeoplePickerNavigationController的代码:

ABPeoplePickerNavigationController *picker = [[ABPeoplePickerNavigationController alloc] init];
picker.peoplePickerDelegate = self;
self.preserveCurrentEntity = YES;
[self presentViewController:picker animated:NO completion:nil];
Run Code Online (Sandbox Code Playgroud)

UIImagePickerController只会因为选择视频而中断,但是对其他一切都有用,这是我使用的代码:

UIImagePickerController *imagePicker = [[UIImagePickerController alloc] init];

switch (buttonIndex) {
    case ImagePickerModeCamera:
            imagePicker.sourceType = UIImagePickerControllerSourceTypeCamera;
        break;
    case ImagePickerModeAlbum:
        imagePicker.sourceType = UIImagePickerControllerSourceTypePhotoLibrary;
        break;
    default:
        break;
}
imagePicker.delegate = self;

NSMutableArray *mediaType = [[NSMutableArray alloc] init];

switch (self.actionSheetType) {
    case ActionSheetTypeImage:
        [mediaType addObject:(NSString*)kUTTypeImage];
        break;
    case ActionSheetTypeVideo: {
        [mediaType addObject:(NSString*)kUTTypeMovie];
        [mediaType addObject:(NSString*)kUTTypeVideo];
        imagePicker.allowsEditing =NO;
    }
        break;
    default:
        break;
}

imagePicker.mediaTypes = mediaType;
[self presentViewController:imagePicker animated:NO completion:nil];
Run Code Online (Sandbox Code Playgroud)

这是在加载ABPeoplePickerNavigationController时iOS7中发生的情况:

IOS 7

这是在加载ABPeoplePickerNavigationController时iOS8中发生的情况:

iOS8上

解决这个问题的解决方案是什么?

Dan*_*yan 5

看起来我找到了解决问题的方法.

我有一个根视图控制器,有两个xib,一个用于iPad,一个用于iPhone.看起来我的iPad之所以引起麻烦,即使它们非常相似(只有一个更大).我无法弄清楚为什么.

我现在只使用iPhone,并确保它在iPad上正确调整大小,一切正常.