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

时间:2016-03-02 13:00:59

标签: objective-c iphone device-orientation

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

  

else返回UIInterfaceOrientationMaskPortrait

这条线路运行。但方向不会改变。

AppDelegate.m

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

    else return UIInterfaceOrientationMaskPortrait;
 }

1 个答案:

答案 0 :(得分:4)

您需要覆盖以下方法

- (BOOL)shouldAutoRotate

对于要允许旋转的那个,返回YES。

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

- (BOOL)shouldAutorotate {
    return YES;
}

- (NSUInteger)supportedInterfaceOrientations {
    return UIInterfaceOrientationMaskAll;
}

并确保在目标的常规设置中正确使用方向。