In einem anderen Fall kann diese Fehlermeldung angezeigt werden. Ich habe stundenlang gesucht, bis ich das Problem gefunden habe. Dieser Thread war sehr hilfreich, nachdem ich ihn einige Male gelesen hatte.
Wenn Ihr Hauptansichts-Controller in Querformat gedreht ist und Sie einen benutzerdefinierten Unteransichts-Controller aufrufen, der im Hochformat angezeigt werden soll, kann diese Fehlermeldung auftreten, wenn Ihr Code folgendermaßen aussieht:
- (NSUInteger)supportedInterfaceOrientations {
return UIInterfaceOrientationPortrait;
}
Die Falle hier war xcodes Intellisense schlug "UIInterfaceOrientationPortrait" vor und es war mir egal. Auf den ersten Blick schien dies richtig zu sein.
Die richtige Maske heißt
UIInterfaceOrientationMaskPortrait
Beachten Sie das kleine Infix "Maske" , da sonst in Ihrer Unteransicht eine Ausnahme und die oben genannte Fehlermeldung angezeigt werden.
Die neuen Aufzählungen sind etwas verschoben. Die alten Aufzählungen geben ungültige Werte zurück!
(In UIApplication.h sehen Sie die neue Deklaration: UIInterfaceOrientationMaskPortrait = (1 << UIInterfaceOrientationPortrait) )
Die Lösung ist:
- (BOOL)shouldAutorotate {
return YES;
}
- (NSUInteger)supportedInterfaceOrientations {
// ATTENTION! Only return orientation MASK values
// return UIInterfaceOrientationPortrait;
return UIInterfaceOrientationMaskPortrait;
}
Im schnellen Einsatz
override func shouldAutorotate() -> Bool {
return true
}
override func supportedInterfaceOrientations() -> Int {
return Int(UIInterfaceOrientationMask.Portrait.rawValue)
}