UIModalViewController и проблема с вращением UIImagePickerController - PullRequest
2 голосов
/ 07 февраля 2012

Это ситуация: у меня viewController, который был представлен таким образом:

AddAttachmentPhotoVideoViewController * addAttachment = [[AddAttachmentPhotoVideoViewController alloc]initWithNibName:nil bundle:nil attachmentType:AtImage];
addAttachment.modalPresentationStyle = UIModalPresentationFormSheet;
addAttachment.modalTransitionStyle = UIModalTransitionStyleCoverVertical;
            
[self presentModalViewController:addAttachment animated:YES];

в addAttachment есть кнопка, которая открывает камеру таким образом:

UIImagePickerController *imagePicker = [[UIImagePickerController alloc] init];

imagePicker.delegate = self;
imagePicker.sourceType = UIImagePickerControllerSourceTypeCamera;    
imagePicker.mediaTypes = [NSArray arrayWithObjects:(NSString *) kUTTypeImage, nil];
imagePicker.allowsEditing = NO;
imagePicker.showsCameraControls = YES;
imagePicker.modalPresentationStyle = UIModalPresentationFullScreen;
imagePicker.modalTransitionStyle = UIModalTransitionStyleFlipHorizontal;
[self presentModalViewController:imagePicker animated:YES];

Проблема заключается в следующем: когда я поворачиваю устройство (iPad), imagePicker вращается сам, но addAttachment не вращается;поэтому, когда я отклоняю средство выбора, addAttachment имеет неправильную рамку, и он не вращается должным образом.

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

Спасибо ...

Ответы [ 2 ]

0 голосов
/ 20 сентября 2012

Вы должны обрабатывать поворот вашего ViewController вручную.

Передний план ViewController должен распространять сообщение поворота на все ViewController за ним.

0 голосов
/ 21 июня 2012

Вы должны указать AddAttachmentPhotoVideoViewController, что он должен автоматически поворачиваться во все ориентации интерфейса.По умолчанию YES возвращается только для портретной ориентации.Добавьте следующий метод, чтобы разрешить автоповорот для всех ориентаций:

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
    return YES;
}
...