力旋转的UIViewController(Force Rotate UIViewController

2019-06-26 02:52发布

所以,我放弃了试图解决我一直有一个问题,我的控制器将不叫我的旋转shouldAutorotateToInterfaceOrientation:方法,因为每个人都几年一直声称它作为iOS的错误。

现在我只是需要用力转动我UIViewController 。 有没有一种方法,我可以做到这一点,因为UIDevice实例方法已被删除,现在我不知道该怎么给力转动我的控制器是什么。

Answer 1:

我不知道它UIDevice方法,你是说已被删除,但下面为我工作(这并不使用UIDevice orientation方法)。 底线,如果你有一个只接受景观视图,可以使用以下方法来强制的iOS改变方向。 这是奇怪的,但它的作品。 我很抱歉,我不能给原作者给予信贷,但一旦跨越StackOverflow上这个别处传来:

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
    return (interfaceOrientation == UIInterfaceOrientationLandscapeLeft || interfaceOrientation == UIInterfaceOrientationLandscapeRight);
}

- (void)forceLandscape
{
    // make sure shouldAutorotateToInterfaceOrientation is configured to accept only landscape

    if (UIDeviceOrientationIsPortrait([[UIDevice currentDevice] orientation]))
    {
        UIWindow *window = [[UIApplication sharedApplication] keyWindow];
        UIView *view = [window.subviews objectAtIndex:0];
        [view removeFromSuperview];
        [window addSubview:view];
    }
}

相当于强制肖像模式(假设,当然,你的shouldAutorotateToInterfaceOrientation只接受人像):

- (void)forcePortrait
{
    // make sure shouldAutorotateToInterfaceOrientation is configured to accept only portrait

    if (UIDeviceOrientationIsLandscape([[UIDevice currentDevice] orientation]))
    {
        UIWindow *window = [[UIApplication sharedApplication] keyWindow];
        UIView *view = [window.subviews objectAtIndex:0];
        [view removeFromSuperview];
        [window addSubview:view];
    }
}


Answer 2:

使用xcode7.3 ios9。 我一直在试图强行打开和关闭景观视野了一个多星期了,没有留下头发:(对于大家有没有发现这个问题,没有答案的工作,或任何对强迫景观其他无数的答案,我终于找到了一些作品在这里: http://www.btday.com/how-to-force-view-controller-orientation-in-ios-8/

建议是把操作viewDidAppear,但它也似乎在viewWillAppear中工作,并略少丑。

override func viewWillAppear(animated: Bool) {
    UIDevice.currentDevice().setValue(UIInterfaceOrientation.LandscapeLeft.rawValue, forKey: "orientation")
}

如果这是错误/坏,请大声说出来,只有一点点的Mac过了一个月,所以我总nuub!

另外请注意,我用的UITabBarController,它似乎并不无论你把这个标签栏控制器或它的一个孩子



文章来源: Force Rotate UIViewController