为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

iOS
米琪卡哇伊 2019-06-25 17:17:07
如何在iOS 6中强制UIViewController面向肖像就像ShouldAutorotateToInterfaceOrientation在IOS 6中被废弃,我使用它强制使用特定的视图只限于肖像画在iOS 6中,正确的方法是什么?这只适用于我的应用程序中的一个区域,所有其他视图都可以旋转。
查看完整描述

3 回答

?
ABOUTYOU

TA贡献1812条经验 获得超5个赞

如果您希望我们所有的导航控制器都尊重顶部视图控制器,您可以使用一个类别,这样您就不需要查看并更改一堆类名。

@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。



查看完整回答
反对 回复 2019-06-25
?
潇潇雨雨

TA贡献1833条经验 获得超4个赞

这一答复涉及“任择议定书”的评论中提出的问题:

为了迫使某一视图出现在给定的位置上,请将以下内容显示在威拉帕马尔的视图中:

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:^{
            }];
     }];}

有趣的是,在撰写本报告时,任一现在或解散必须充满活力。如果两者都不是,那么你将得到一个白色的屏幕。不知道为什么这能让它工作,但它确实!视动画效果而定,视觉效果是不同的。


查看完整回答
反对 回复 2019-06-25
  • 3 回答
  • 0 关注
  • 489 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信