Child View Controller wird gedreht, während Parent View Controller dies nicht tut

Was versuche ich zu tun:

Parent View, der von Parent View Controller verwaltet wird MUSS NICHT DREHEN.

Child View, die von Child View Controller verwaltet wird SOLLTE DREHEN zu allen Orientierungen.

Was ich ausprobiert habe:

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
}

Unterstützte Ausrichtungen in den Xcode-Bereitstellungsinformationen sind auf alle vier festgelegt.

Was ich bekomme:

Keiner der Ansichten dreht sich. Wenn ich die Drehung des übergeordneten Elements auf "Alle" stelle, werden alle Ansichten zusammen gedreht. Es ist also alles oder nichts.

AKTUALISIERE

Wenn ich versuche, einen Beobachter für @ zu setz UIDeviceOrientationDidChangeNotification und verwenden Sie die Ausrichtung UIDevice.currentDevice ()., um @ zu drehe childViewei Verwendung von CGAffaineTransformMakeRotate erhalte ich die gewünschten Ergebnisse. Das heißt, wenn ich in das Querformat drehe und versuche, das Benachrichtigungscenter herunterzuziehen (oder wenn ich eine Systembenachrichtigung erhalte), das sich noch im Hochformat befindet (weil die App nativ noch im Hochformat verbleibt), wird @ gedreh childView dreht sich zurück zum Hochformat, um die Statusleiste / Benachrichtigung / Benachrichtigungscenter zu ehren.

Stock iOS Kamera App ist das beste Beispiel, das ich vorstellen kann. Die Hauptleinwand dreht sich nicht in unterschiedlichen Ausrichtungen. Die Statusleiste hinter den Kulissen dreht sich jedoch, um das Gerät zu drehen. Außerdem drehen sich die Unteransichten in sich selbst, um unterschiedliche Ausrichtungen zu berücksichtigen. Ich versuche dieses Verhalten zu erreichen ....

Antworten auf die Frage(6)

Ihre Antwort auf die Frage