El controlador de vista secundario girará mientras que el controlador de vista principal no

Lo que estoy tratando de hacer:

Vista principal administrada por el controlador de vista principalNO DEBE GIRAR.

Vista secundaria administrada por el controlador de vista secundariaDEBE GIRAR a todas las orientaciones.

Lo que he probado:

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
}

Las orientaciones admitidas en Xcode Deployment Info se establecen en los cuatro.

Lo que consigo:

Ninguna de las vistas gira. Si configuro la rotación de los padres en todos, todas las vistas rotan juntas. Entonces es todo o nada.

ACTUALIZAR

Cuando trato de poner un observador paraUIDeviceOrientationDidChangeNotification y use la orientación UIDevice.currentDevice (). para rotarchildView usando CGAffaineTransformMakeRotate, obtengo los resultados deseados. SIN EMBARGO, es decir, si giro hacia el paisaje e intento desplegar el centro de notificaciones (o si recibo una notificación del sistema), que todavía está en la orientación vertical (porque la aplicación todavía se deja en modo vertical), girachildView gira de nuevo al retrato para honrar la barra de estado / notificación / centro de notificaciones.

Aplicación de cámara de iOS en stock Es el mejor ejemplo que puedo presentar. El lienzo principal no gira en diferentes orientaciones, sin embargo, la barra de estado, detrás de escena, gira en honor a la rotación del dispositivo. Además, las subvistas giran dentro de sí mismas para honrar las diferentes orientaciones. Estoy tratando de lograr este comportamiento ...

Respuestas a la pregunta(3)

Su respuesta a la pregunta