Warum in iOS 8 meine App beim Start falsche Orientierung nehmen?
meine app bis iOS 7 richtig funktioniert. Ich versuchte es heute mit Xcode 6 und wenn ich es laufen habe ich eine böse überraschung :(:
Sie können sehen, dass Xcode nun ziehen meine viewController als wenn es im portrait-Modus, aber wie man sehen kann, ist im landscape-Modus.
Weißt du, was ist geändert im iOS 8? :/
Ich habe folgende Orientierung Methoden:
- (NSUInteger)supportedInterfaceOrientations
- (BOOL)shouldAutorotate
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
EDIT:
Ich einfach nur entdecken Sie diese Methode:
- (NSUInteger)application:(UIApplication *)application supportedInterfaceOrientationsForWindow:(UIWindow *)window
{
return UIInterfaceOrientationMaskLandscape;
}
Und jetzt meine erste viewcontrollers korrekt funktioniert :). das problem ist, wenn ich ein modales (, ändern die set-Methode in UIInterfaceOrientationMaskAll) remake der hässliche Effekt der Abbildung.
Genau ich meine die Methoden, die in diesem Modus:
- (NSUInteger)application:(UIApplication *)application supportedInterfaceOrientationsForWindow:(UIWindow *)window
{
if(self.restrictRotation)
{
return UIInterfaceOrientationMaskLandscape;
}
else
{
return UIInterfaceOrientationMaskAll;
}
}
//THIS IS A DELEGATE OF MODAL VIEW CONTROLLER
- (void)updateInterfaceAfterDocumentPreviewViewController
{
NSLog(@"updateInterfaceAfterDocumentPreviewViewController");
[[UIApplication sharedApplication] setStatusBarOrientation:UIInterfaceOrientationLandscapeLeft];
AppDelegate* appDelegate = (AppDelegate*)[UIApplication sharedApplication].delegate;
appDelegate.restrictRotation = YES;
}
InformationsquelleAutor der Frage | 2014-09-15
Du musst angemeldet sein, um einen Kommentar abzugeben.
Bitte versuchen Sie den folgenden code
In der
didFinishLaunchingWithOptions
vonAppDelegate
InformationsquelleAutor der Antwort chonbo
Das Problem scheint zu sein, die die Reihenfolge der Anrufe beim einrichten der Fenster. Müssen Sie rufen Sie
makeKeyAndVisible
bevor Sie ordnen dierootViewController
in IhremdidFinishLaunchingWithOptions
Methode im app delegate. Die folgenden Werke:Aber wenn du die Reihenfolge ändern:
Erhalten Sie die Verhalten, die Sie erleben.
InformationsquelleAutor der Antwort Dave Kammeyer
Ich hatte exakt das gleiche problem mit einem "lade-Bildschirm". Das ist was für mich gearbeitet. (Bitte beachten Sie: die App unterstützt nur iOS 7 oder höher, das landscape-Modus.) :
Entnehmen Sie bitte Mike Hay ' s Antwort wenn Ihre App unterstützt Querformat und für die "langen Weg zur Berechnung der richtigen applicationFrame":
https://stackoverflow.com/a/18072095/4108485
Hoffe, das hilft.
InformationsquelleAutor der Antwort l3bel
Haben Sie einen Blick auf Ihre .plist-Datei.
InformationsquelleAutor der Antwort benaneesh
Ich hatte ein ähnliches problem, ich konnte nicht die richtigen Start-Bilder zu zeigen (ich hatte zwei für iPad, Standard-Portrait.png und Default-Landscape.png) und auch ich konnte nicht Holen Sie sich die App, die sich automatisch ausrichten, nachdem das Startbild verschwunden.
Um das problem zu lösen, die für die Einführung der Bilder:
Zu lösen, die app Ausrichtung Ausgabe auf den ersten ViewController:
InformationsquelleAutor der Antwort scarfox
Den Ansatz der Erkennung der Orientierung war veraltet in iOS8 (aber immer noch erlaubt für jetzt).
Es wurde ersetzt durch das Konzept der Klassen und Trait-Sammlungen.
(Seltsam, ich kann nicht scheinen zu finden, eine Größe Klasse Referenz in Apple Google docs online jetzt - würde schwören, dass es vorher da war - vielleicht in XCode). Sehen hier für die WWDC videos.
Sowieso, es gibt eine checkbox in den Interface Builder, der sagt "Verwenden Größenklassen."
Könnte sein, Sie haben das geprüft. Schalten Sie es aus & sehen, ob das hilft?
InformationsquelleAutor der Antwort mc01
Oldschool-Lösung:
Rufen Sie diese in viewWillLayoutSubviews
InformationsquelleAutor der Antwort Avi Cohen
InformationsquelleAutor der Antwort Joshua Haws