У меня есть класс UITabBarController и я хочу, чтобы вращался только один из ViewController, все остальные ViewController всегда должны отображаться в портретном режиме.
При переключении из RotateViewController в другой ViewController в альбомной ориентации экран остается в горизонтальной ориентации независимо от поворота.Похоже, правильное вращение не «переоценено» при переключении экранов.
class TabBarController: UITabBarController {
override var shouldAutorotate: Bool {
if self.selectedViewController is RotateViewController {
return true
}
return false
}
override var supportedInterfaceOrientations: UIInterfaceOrientationMask {
if self.selectedViewController is RotateViewController {
return [.portrait, .landscapeRight, .landscapeLeft]
}
return .portrait
}
Принудительное вращение не работает.Это отобразит все отдельные элементы в альбомной ориентации, а затем повернет весь экран.
UIDevice.current.setValue(Int(UIInterfaceOrientation.portrait.rawValue), forKey: "orientation")