Контроллер дочернего представления будет вращаться, а контроллер родительского вида - нет
Что я пытаюсь сделать:
Родительское Представление, которым управляет Родительское Представление КонтроллерНЕ СЛЕДУЕТ ВРАЩАТЬ.
Дочернее представление, которым управляет Дочернее Представление КонтроллерДОЛЖЕН ВРАЩАТЬ для всех направлений.
Что я попробовал:
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 установлены на все четыре.
Что я получаю:
Ни один из вида не вращается. Если я установлю вращение родителя для всех, все виды вращаются вместе. Так что все или ничего.
ОБНОВИТЬ
Когда я пытаюсь поставить наблюдателя дляUIDeviceOrientationDidChangeNotification и использовать UIDevice.currentDevice (). ориентацию для поворотаchildView используя CGAffaineTransformMakeRotate, я получаю желаемые результаты. ОДНАКО, то есть, если я поворачиваюсь в альбомную ориентацию и пытаюсь развернуть центр уведомлений (или если я получаю системное уведомление), который все еще находится в книжной ориентации (поскольку приложение по-прежнему остается в книжной ориентации), повернутыйchildView поворачивается назад к портрету, чтобы соблюдать статусную строку / уведомления / центр уведомлений.
Сток iOS приложение для камеры это лучший пример, который я могу представить. Основное полотно не поворачивается в разные ориентации, однако строка состояния за кулисами вращается в соответствии с вращением устройства. Также подпредставления вращаются внутри самих себя, чтобы соблюдать разные ориентации. Я пытаюсь добиться такого поведения ....