2015-10-22 4 views
0

У меня немного странная ситуация. У меня есть приложение для фото, которое автоматически устанавливает ориентацию приложения в зависимости от размеров загруженного изображения. Я использую следующий код.UIImagePicker Прыжки назад к портрету, когда выбрано

- (BOOL)prefersStatusBarHidden { 
return YES; 
} 

- (BOOL) shouldAutorotate { 
return NO; 
} 

- (BOOL) shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation { 
return NO; 
} 

- (IBAction)setRotation { 

if(imageOriginal.size.height > imageOriginal.size.width){ 

    NSNumber *value = [NSNumber numberWithInt:UIInterfaceOrientationPortrait]; 
    [[UIDevice currentDevice] setValue:value forKey:@"orientation"]; 

}else { 

    NSNumber *value = [NSNumber numberWithInt:UIInterfaceOrientationLandscapeLeft]; 
    [[UIDevice currentDevice] setValue:value forKey:@"orientation"]; 

} 

} 

Проблема заключается в том, что позволяет сказать, что я загружаю изображение портрета в приложение UIImagePicker находится в портретном режиме. Теперь я выбираю ландшафтное изображение и снова выбираю UIImagePicker, вместо того, чтобы сборщик теперь находится в ландшафтном режиме, он возвращается к портрету и выглядит довольно уродливо.

Есть ли лучший способ настроить ориентацию устройства на основе изображения или устранить проблему выше?

ответ

0

Нашли решение, необходимое для изменения следующего кода, чтобы убедиться, что UIImagePicker находится в контексте.

- (IBAction)loadImage:(id)sender { 

UIImagePickerController *imagePicker = [[UIImagePickerController alloc] init]; 
imagePicker.delegate = self; 
-- > imagePicker.modalPresentationStyle = UIModalPresentationCurrentContext; 
//imagePicker.sourceType = UIImagePickerControllerSourceTypeSavedPhotosAlbum; 
[self presentViewController:imagePicker animated:NO completion:nil]; 

} 
Смежные вопросы