Как обрабатывать ориентацию в IOS Objective C только для одного экрана и сбрасывать при нажатии - PullRequest
0 голосов
/ 09 июля 2020

Я новичок в разработке IOS, и мне нужно указать альбомную и портретную ориентацию только для одного экрана, а все остальные должны быть только портретными. Я использую следующий код в файле AppDelegate и меняю его на своем экране. Но когда я нажимаю кнопку «Назад», предыдущий экран не поворачивается снова в портретный режим?

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

1 Ответ

1 голос
/ 09 июля 2020

Добавьте ниже код внутри viewWillAppear для всех viewControllers, которые вы хотите отображать только в портретной ориентации. не забудьте отметить ориентацию устройства как для портретного, так и для ландшафтного режима.

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