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;
}
并确保您在目标的常规设置中正确允许方向。
我只想更改一个 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;
}
并确保您在目标的常规设置中正确允许方向。