Я следовал инструкциям из примечания об устаревании UIRequiresFullScreen: https://developer.apple.com/documentati ... FullScreen. Это то, что я пытался использовать API-интерфейс PrepresInterfaceOrientationLocked и supportInterfaceOrientations, но это не сработало.
Здесь у меня есть класс ViewController, который должен быть портретным, затем он передает класс LandscapeVC, который должен быть ландшафтным.
Код: Выделить всё
import UIKit
class ViewController: UIViewController {
override var supportedInterfaceOrientations: UIInterfaceOrientationMask {
return .portrait
}
override var prefersInterfaceOrientationLocked: Bool {
true
}
override func viewDidLoad() {
super.viewDidLoad()
navigationItem.title = "Hello"
let item = UIBarButtonItem(barButtonSystemItem: .action, target: self, action: #selector(clicked))
navigationItem.rightBarButtonItem = item
}
@objc
func clicked() {
let vc = LandscapeVC()
self.navigationController!.pushViewController(vc, animated: true)
}
}
class LandscapeVC: UIViewController {
override var supportedInterfaceOrientations: UIInterfaceOrientationMask {
return .landscape
}
override var prefersInterfaceOrientationLocked: Bool {
true
}
}
Подробнее здесь: https://stackoverflow.com/questions/798 ... ontrollers
Мобильная версия