ABPeoplePickerNavigationController и UIImagePickerController не отображаются правильно на 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];

Это то, что происходит в iOS7 при загрузке ABPeoplePickerNavigationController:

iOS 7

Это то, что происходит в iOS8 при загрузке ABPeoplePickerNavigationController:

iOS8

Какое решение можно исправить?

Ответ 1

Похоже, я нашел решение своей проблемы.

У меня есть контроллер корневого представления, у которого есть два xibs, один для iPad и один для iPhone. Кажется, мой iPad был причиной проблемы, хотя они были очень похожи (только один был больше). Я не мог понять, почему.

Я просто использую iPhone один сейчас и убедитесь, что он правильно изменяет IPad, и все работает правильно.

Ответ 2

У меня такая же проблема, как и вы, но после того, как я потратил немного времени на получение какой-либо должности, это может быть причиной вашего дела.

Библиотека iPhone не работает на iOS Simulator в специальном случае выбора Vedio

Отправленный пост для моего решения. и работал на меня.

Обновите его, если вы все еще сталкиваетесь с проблемой, я могу опубликовать свой код, чтобы помочь вам.

HTH, наслаждайтесь кодированием!