Objective-C 仅更改一个 UiViewController 的设备方向

Objective-C change device orientation for only one UiViewController

我只想更改一个 UiViewController 的设备方向。我的第一个 UiViewController 的名字是 VideoLaunch。我首先想要这个 UiViewController 中的横向方向。当我传递另一个 uiviewcontroller 时,我将名称为 "is" 的静态值更改为不同于 nil。当我 运行 在调试模式下我看到

else return UIInterfaceOrientationMaskPortrait

这一行 运行s。但是方向没有改变。

AppDelegate.m

 - (NSUInteger)application:(UIApplication *)application supportedInterfaceOrientationsForWindow:(UIWindow *)window {   
    if([VideoLaunch is] == nil)
        return UIInterfaceOrientationMaskLandscape;

    else return UIInterfaceOrientationMaskPortrait;
 }

您需要覆盖以下方法

- (BOOL)shouldAutoRotate

return YES 允许轮换。

然后,还要覆盖 supportedDeviceOrientations 并在其中指定您想要的内容。例如:

- (BOOL)shouldAutorotate {
    return YES;
}

- (NSUInteger)supportedInterfaceOrientations {
    return UIInterfaceOrientationMaskAll;
}

并确保您在目标的常规设置中正确允许方向。