当我尝试使用“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];
这是在 iOS7 中加载 ABPeoplePickerNavigationController 时发生的情况:
这是在 iOS8 中加载 ABPeoplePickerNavigationController 时发生的情况:
解决这个问题的方法是什么?
最佳答案
看来我找到了解决问题的方法。
我有一个 Root View Controller ,它有两个 xib,一个用于 iPad,一个用于 iPhone。看来我的 iPad 造成了麻烦,尽管它们非常相似(只有一个更大)。我不知道为什么。
我现在只使用 iPhone 并确保它在 iPad 上正确调整大小并且一切正常。
关于ios - ABPeoplePickerNavigationController 和 UIImagePickerController 在 iPad iOS7 上无法正确显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29595805/