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

时间:2015-04-12 23:19:45

标签: ios objective-c ipad 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];

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];

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

iOS 7

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

iOS8

解决此问题的解决方案是什么?

2 个答案:

答案 0 :(得分:5)

看起来我找到了问题的解决方案。

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

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

答案 1 :(得分:4)

我遇到了和你一样的问题,但是在浪费了一些时间后我得到了一些帖子,这可能是你案件的原因。

选择Vedio

的特殊情况下,iPhone库无法在iOS模拟器上运行 我的解决方案

Referred Post 。并为我工作。

更新,如果您仍然遇到问题,我可以发布我的代码来帮助您。

HTH,享受编码!!