Что я пытаюсь сделать:
Родительский просмотр, управляемый контроллером родительского контроля НЕ ДОПУСКАЕТ.
Child View, управляемый контроллером детского просмотра СЛЕДУЕТ ВОСПРОИЗВЕДЕНИЕ ко всем ориентациям.
Что я пробовал:
ParentViewController
override func supportedInterfaceOrientations() -> UIInterfaceOrientationMask {
return .Portrait
}
override func shouldAutorotate() -> Bool {
return true
}
fun addChildViewController() {
let storyBoard = UIStoryboard(name: "Main", bundle: nil)
self.childViewController = storyBoard("Child View Controller") as? ChildViewController
self .addChildViewController(self.childViewController!)
self.childViewController! .didMoveToParentViewController(self)
self.view .addSubview(self.childViewController!.view)
self.childViewController!.view.frame = CGRectMake (40, 200, 400, 250)
}
ChildViewController
override func supportedInterfaceOrientations() -> UIInterfaceOrientationMask {
return .All
}
override func shouldAutorotate() -> Bool {
return true
}
Поддерживаемые ориентации в информации о развертывании Xcode установлены на все четыре.
Что я получаю:
Ни один вид View не вращается. Если я устанавливаю родительский поворот ко всем, все представления вращаются вместе. Так что все это или ничего.
ОБНОВЛЕНИЕ
Когда я пытаюсь помещать наблюдателя для UIDeviceOrientationDidChangeNotification и использовать UIDevice.currentDevice(). Ориентация для поворота childView с использованием CGAffaineTransformMakeRotate, я получаю желаемые результаты. ОДНАКО, т.е. Если я повернусь к пейзажу и попытаюсь вытащить центр уведомлений (или, если я получу системное уведомление), который все еще находится в портретной ориентации (потому что приложение по-прежнему остается в портрете), поворачивается childView поворачивается назад к портрету, чтобы почтить статус-бар/центр уведомлений/уведомлений.
Приложение для камеры iOS - лучший пример, который я могу представить. Основной холст не вращается в разные ориентации, но строка состояния за кулисами поворачивается, соблюдая порядок вращения устройства. Кроме того, подвиды вращаются внутри себя, чтобы соблюдать разные ориентации. Я пытаюсь добиться такого поведения....