Controlador de exibição filho girar enquanto o controlador de exibição pai não
O que estou tentando fazer:
Visualização pai gerenciada pelo controlador de exibição paiNÃO DEVE RODAR.
Visualização filho gerenciada pelo Controlador de exibição filhoDEVE RODAR para todas as orientações.
O que eu tentei:
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
}
As orientações suportadas no Xcode Deployment Info estão definidas para as quatro.
O que eu ganho:
Nenhuma das vistas roda. Se eu definir a rotação dos pais para todos, todas as visualizações serão giradas juntas. Então é tudo ou nada.
ATUALIZAR
Quando tento colocar um observador paraUIDeviceOrientationDidChangeNotification e use a orientação UIDevice.currentDevice (). para girarchildView usando CGAffaineTransformMakeRotate, obtenho os resultados desejados. NO ENTANTO, isto é, se eu girar para a paisagem e tentar puxar para baixo o centro de notificação (ou se eu receber uma notificação do sistema), que ainda está na orientação retrato (porque o aplicativo ainda permanece nativamente em Retrato), giradochildView gira de volta para o retrato para honrar a barra de status / centro de notificação / notificação.
Aplicativo da câmera para iOS é o melhor exemplo que posso apresentar. A tela principal não gira para diferentes orientações, mas a barra de status, nos bastidores, gira para honrar a rotação do dispositivo. Também as subvisões giram dentro de si para honrar diferentes orientações. Eu estou tentando alcançar esse comportamento ....