2013-10-15 3 views
1

Я пытаюсь использовать UIImagePickerController для выбора фотографии из iphone-галереи. на кнопку мыши я сделать следующее:отклонение UIImagePickerController прерывает родительский макет

- (IBAction)attachAction:(id)sender { 

    self.imagePicker = [[UIImagePickerController alloc] init]; 
    self.imagePicker.delegate = self; 
    self.imagePicker.allowsEditing = YES; 
    self.imagePicker.sourceType = UIImagePickerControllerSourceTypePhotoLibrary; 

    [self presentModalViewController:self.imagePicker animated:YES]; 
} 

В портретном это нормально, но когда я поворачиваю на альбомный, настоящем подборщик изображений и после выполнения некоторых работ уволить его, макет родительского вида брейков контроллера и я вижу половину экран с родительским видом и другим получерным прямоугольником.

Любые идеи, как это решить? Как заставить uiviewcontroller изменить макет или его ориентацию вручную после того, как imagePicker уволен?

Я пытаюсь справиться с вращением этого кода, но ничего не меняет ситуацию

- (NSUInteger)supportedInterfaceOrientations { 
    return UIInterfaceOrientationMaskPortrait; 
} 

    - (BOOL)shouldAutorotate 
{ 
    return YES; 
} 

    -(void) willRotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration { 
    [self.view setNeedsLayout]; 
} 

ответ

0

Я нашел найденную проблему. У меня есть UITabBarController перед этим VC, и я забыл реализовать

- (BOOL)shouldAutorotate 
{ 
    return YES; 
} 
- (NSUInteger)supportedInterfaceOrientations 
{ 
    return UIInterfaceOrientationMaskAllButUpsideDown; 
} 

подклассы UITabBarController и добавление этих методов решаемых проблем. Спасибо за советы!

+0

не работает вообще – user2159978

0

Это происходит, если вы повернете modalView, когда контроллер Предъявление не обрабатывает вращения.

Попробуйте добавить

- (NSUInteger)supportedInterfaceOrientations { 
    return UIInterfaceOrientationMaskPortrait; 
} 

в этом классе, он должен правильно заменить вид, когда modalview покидает

+0

Ничего не происходит, макет все еще сломан – Doro

+0

Как вы управляете поворотом в этом контроллере? Не могли бы вы поделиться этой частью кода, пожалуйста? – KIDdAe

+0

Я добавил этот метод для обработки вращения - (BOOL) shouldAutorotateToInterfaceOrientation: (UIInterfaceOrientation) interfaceOrientation { \t return YES; } но этот метод не срабатывает – Doro

0

Ну, UIImagePickerController поддерживает только портретный режим. Но вам нужно использовать свойство ниже для принудительного использования ландшафтного поведения. @property (nonatomic, сохранить) UIView * cameraOverlayView Обсуждение Вы можете использовать представление наложения, чтобы представить пользовательскую иерархию представлений поверх интерфейса выбора изображений по умолчанию. Элемент выбора изображений создает пользовательский вид наложения поверх других изображений и отображает его относительно координат экрана. Если у вас есть установленные по умолчанию элементы управления камерой, которые должны быть видимыми, включите прозрачность в ваше представление или расположите ее, чтобы избежать затенения основного содержимого.

Также вы можете по этой ссылке Force landscape orientation in UIImagePickerController

+0

У меня есть исходный тип UIImagePickerControllerSourceTypePhotoLibrary, поэтому я не могу использовать это свойство, или я понял что-то не так? – Doro

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