IPadOS 26, как установить разную ориентацию в разных контроллерах представленияIOS

Программируем под IOS
Anonymous
IPadOS 26, как установить разную ориентацию в разных контроллерах представления

Сообщение Anonymous »

У меня есть домашний виртуальный компьютер, который должен быть в книжной ориентации, тогда он может запустить игровой виртуальный компьютер в альбомной ориентации. Интересно, как я могу заставить интерфейс поворачиваться в альбомную ориентацию при нажатии на виртуальный компьютер игры, а затем поворачиваться обратно в портретную ориентацию при возвращении в домашний виртуальный компьютер?
Я следовал инструкциям из примечания об устаревании 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

Вернуться в «IOS»