Сбой приложения в iOS 7

Приложение аварийно завершает работу, когда я использую UIImagePicker на iPhone, но только на iOS 7. Я использую следующие строки кода

    picker = [[UIImagePickerController alloc] init];

    picker.delegate = self;
    picker.allowsEditing = YES;

    if( [UIImagePickerController isCameraDeviceAvailable:UIImagePickerControllerCameraDeviceFront] || [UIImagePickerController isCameraDeviceAvailable:UIImagePickerControllerCameraDeviceRear])
    {
        picker.sourceType = UIImagePickerControllerSourceTypePhotoLibrary;
    } else {
        //[self showAlertViewWithTitle:@"Sorry" message:@"Your Device Don't Have Camera"];
    }

    [self presentViewController:picker animated:YES completion:nil];

}

Приложение работает на iOS 6, а не на iOS 7. Я новичок на этом сайте, пожалуйста, помогите.


person Pravin    schedule 21.10.2013    source источник
comment
Можете ли вы опубликовать исключение, которое вы получаете?   -  person Shaun    schedule 21.10.2013
comment
Чтобы было ясно. Вылетает при запуске под iOS 7 и работает под iOS 6? Да, лучший способ - также опубликовать сообщение об ошибке и т. Д. С консоли.   -  person Binarian    schedule 21.10.2013
comment
причина: «Поддерживаемые ориентации не имеют общей ориентации с приложением, и shouldAutorotate возвращает YES»   -  person Pravin    schedule 21.10.2013
comment
затем в вашем ViewController следует изменить Autorotate на NO вместо YES.   -  person Nitin Gohel    schedule 21.10.2013
comment
пытался, но не повезло. Приложение работает в iOS6, а не в iOS 7.   -  person Pravin    schedule 21.10.2013
comment
@Pravin, есть ли ваше приложение в ландшафтном режиме?   -  person user1673099    schedule 21.10.2013
comment
Да, приложение находится в ландшафтном режиме.   -  person Pravin    schedule 21.10.2013
comment
@Правин, Уэйт!! Я загружаю свой код..   -  person user1673099    schedule 21.10.2013


Ответы (3)


Представление UIImagePickerController в режиме Potratin Только на iPhone. И я нашел еще одну ошибку в вашем коде, которую вы используете picker.sourceType = UIImagePickerControllerSourceTypePhotoLibrary, а isCameraDeviceAvailable неправильно: -

вы должны кодировать как: -

if( [UIImagePickerController isCameraDeviceAvailable:UIImagePickerControllerCameraDeviceFront] || [UIImagePickerController isCameraDeviceAvailable:UIImagePickerControllerCameraDeviceRear])
    {
       picker.sourceType = UIImagePickerControllerSourceTypeCamera;
                 [self presentViewController:picker animated:YES completion:nil];
    } else {
         picker.sourceType = UIImagePickerControllerSourceTypePhotoLibrary;
                 [self presentViewController:picker animated:YES completion:nil];       
    }

и в вашем ViewController shouldAutorotate измените на НЕТ вместо ДА

person Nitin Gohel    schedule 21.10.2013
comment
Не стесняйтесь принять этот ответ. Кажется, этот ответ решил вашу проблему. :) - person Ganapathy; 21.10.2013

В файле ViewController.m перед началом @implementation напишите следующий код

@interface NonRotatingUIImagePickerController : UIImagePickerController

@end

@implementation NonRotatingUIImagePickerController

- (BOOL)shouldAutorotate
{
    return NO;
}

@end

Там, где вы хотите создать объект Image Picker, напишите следующий код

UIImagePickerController* picker = [[NonRotatingUIImagePickerController alloc] init];
picker.sourceType = UIImagePickerControllerSourceTypePhotoLibrary;
picker.delegate = self; 
    [self presentModalViewController:picker animated:YES];
person user1673099    schedule 21.10.2013
comment
Дайте мне знать, если у вас возникнут проблемы. - person user1673099; 21.10.2013
comment
PopOverController работает на iPhone? - person Pravin; 21.10.2013
comment
@ Правин, извини... Подожди минутку... Я обновляю свой ответ. - person user1673099; 21.10.2013
comment
решено, но в iphone всплывающее окно открывается в портретном режиме ... но мне нужен режим ladscape. - person Pravin; 21.10.2013
comment
Imager Picker никогда не поддерживает ландшафтный режим. - person user1673099; 21.10.2013