关闭 ViewController 后,我的视图保持在 iOS7 中以前的视图控制器方向
Posted
技术标签:
【中文标题】关闭 ViewController 后,我的视图保持在 iOS7 中以前的视图控制器方向【英文标题】:After dismissViewController my view remain in previous view controller's orientation in iOS7 【发布时间】:2014-08-16 23:19:13 【问题描述】:由于我正在使用 ios 应用程序,因此仅支持 Portrait Orientation
。
但我遇到了一些与方向相关的问题。
我的应用只支持纵向
当我的父母 P1.view 使用导航推送时,它处于纵向模式,这很好。现在从 P1.view 我正在查看我的子视图 C1.view
现在我在 childview C1.view 并从那里使用委托我正在调用
-(void)imagePickerController:(UIImagePickerController *)picker
[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)中都定义,并且在模型视图关闭时也被调用,但我的视图控制器仍保留在景观中,这不应该发生。
此代码在 iOS6 中运行良好,但在 iOS7 中运行良好
【问题讨论】:
对于 iOS 7,你应该使用 -(void)willRotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration 但这在 iOS 6 中不起作用。 【参考方案1】:我认为preferredInterfaceOrientationForPresentation
不应该返回位掩码。你可以试试:
- (UIInterfaceOrientation)preferredInterfaceOrientationForPresentation
return UIInterfaceOrientationPortrait;
【讨论】:
以上是关于关闭 ViewController 后,我的视图保持在 iOS7 中以前的视图控制器方向的主要内容,如果未能解决你的问题,请参考以下文章
Storyboard Modal ViewController 不会关闭;已经尝试了一切
PresentViewController 关闭不会回到以前的 viewController