由于我仅使用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我的视图出现在Landscapmode而不是Portrait中 模式。
- (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)中定义,并在模型视图关闭时调用,但我的viewcontroller仍然在Landscape中,这不应该发生。
此代码在iOS6中运行良好,但在iOS7中运行
答案 0 :(得分:0)
我认为preferredInterfaceOrientationForPresentation
不应该返回一点掩码。你可以尝试:
- (UIInterfaceOrientation)preferredInterfaceOrientationForPresentation {
return UIInterfaceOrientationPortrait;
}