如何仅针对一个屏幕处理 IOS Objective C 中的方向并在按下时重置

How to Handle Orientation in IOS Objective C only for one screen and reset when press

我是 IOS 开发的新手,我必须只为一个屏幕提供横向和纵向,而所有其他屏幕都应该只提供纵向。我在 AppDelegate 文件中使用以下代码并在我的屏幕中更改它。但是当我按下后退按钮之前的屏幕不会再次旋转到纵向吗?

- (UIInterfaceOrientationMask)application:(UIApplication *) application
  supportedInterfaceOrientationsForWindow:(UIWindow *) window {
    if (self.allowLandscape) {
        return UIInterfaceOrientationMaskLandscapeLeft &
        UIInterfaceOrientationMaskLandscapeRight;
    }
    return UIInterfaceOrientationMaskPortrait;
}

在您只想显示纵向的所有视图控制器上的 viewWillAppear 中添加以下代码。不要忘记将设备方向标记为纵向和横向模式。

NSNumber *value = [NSNumber numberWithInt:UIDeviceOrientationPortrait];
[[UIDevice currentDevice] setValue:value forKey:@"orientation"];