Поскольку я работаю с приложением iOS, поддерживается только Portrait Orientation
. Но я получаю некоторые проблемы, связанные с ориентацией.
Мое приложение поддерживает только портретную ориентацию
когда мой родитель P1.view нажимается с помощью навигации, он находится в портретном режиме, это нормально. Теперь из P1.view я просматриваю дочернее представление C1.view.
Теперь я в дочернем представлении C1.view и оттуда, используя делегат, я звоню
-(void)imagePickerController:(UIImagePickerController *)выборщик
[self.delegate openCamera]
;//вызывается из C1.view-(void)openCamera //declared in P1.view { UIImagePickerController *picker = [[UIImagePickerController alloc] init]; picker.delegate = self; picker.allowsEditing = NO; picker.sourceType = UIImagePickerControllerSourceTypeCamera;> [self presentModalViewController:picker animated:YES]; }
Теперь, когда я делаю снимок в режиме Lanscape и убираю этот PresentModalViewController, мой вид отображается в режиме Landscap, а не в портретном режиме.
- (BOOL)shouldAutorotate { return YES; } - (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation{ return (interfaceOrientation == UIInterfaceOrientationPortrait || interfaceOrientation == UIInterfaceOrientationPortraitUpsideDown); } - (NSUInteger)supportedInterfaceOrientations { return (UIInterfaceOrientationMaskPortrait | UIInterfaceOrientationMaskPortraitUpsideDown); } - (UIInterfaceOrientation)preferredInterfaceOrientationForPresentation { return (UIInterfaceOrientationMaskPortrait | UIInterfaceOrientationMaskPortraitUpsideDown); }
Эти методы определены в обоих контроллерах представления (P1 и C1), а также вызываются при отклонении представления модели, но мой контроллер представления остается в альбомной ориентации, чего не должно происходить.
Этот код отлично работает в iOS6, но не в iOS7.