如何在iOS 6中强制UIViewController面向肖像

如何在iOS 6中强制UIViewController面向肖像

就像ShouldAutorotateToInterfaceOrientation在IOS 6中被废弃,我使用它强制使用特定的视图只限于肖像画在iOS 6中,正确的方法是什么?这只适用于我的应用程序中的一个区域,所有其他视图都可以旋转。



米琪卡哇伊
浏览 490回答 3
3回答

ABOUTYOU

如果您希望我们所有的导航控制器都尊重顶部视图控制器,您可以使用一个类别,这样您就不需要查看并更改一堆类名。@implementation UINavigationController (Rotation_IOS6)-(BOOL)shouldAutorotate{     return [[self.viewControllers lastObject] shouldAutorotate];}-(NSUInteger)supportedInterfaceOrientations{     return [[self.viewControllers lastObject] supportedInterfaceOrientations];}- (UIInterfaceOrientation)preferredInterfaceOrientationForPresentation{     return [[self.viewControllers lastObject] preferredInterfaceOrientationForPresentation];}@end正如一些评论所指出的,这是一个快速解决问题的方法。一个更好的解决方案是子类UINavigationController,并将这些方法放在那里。子类还有助于支持6和7。

潇潇雨雨

这一答复涉及“任择议定书”的评论中提出的问题:为了迫使某一视图出现在给定的位置上,请将以下内容显示在威拉帕马尔的视图中:UIApplication* application = [UIApplication sharedApplication];if (application.statusBarOrientation != UIInterfaceOrientationPortrait){     UIViewController *c = [[UIViewController alloc]init];     [self presentModalViewController:c animated:NO];     [self dismissModalViewControllerAnimated:NO];}有点像黑客,但这会迫使UIViewController即使以前的控制器是景观,也要以肖像的形式呈现iOS 7的最新情况现在已不再推荐上述方法,因此对于IOS 7,请使用以下方法:UIApplication* application = [UIApplication sharedApplication];if (application.statusBarOrientation != UIInterfaceOrientationPortrait){      UIViewController *c = [[UIViewController alloc]init];      [c.view setBackgroundColor:[UIColor redColor]];      [self.navigationController presentViewController:c animated:NO completion:^{             [self.navigationController dismissViewControllerAnimated:YES completion:^{             }];      }];}有趣的是,在撰写本报告时,任一现在或解散必须充满活力。如果两者都不是,那么你将得到一个白色的屏幕。不知道为什么这能让它工作,但它确实!视动画效果而定,视觉效果是不同的。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

iOS