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 ....

questionAnswers(3)

yourAnswerToTheQuestion