2014-05-22 6 views
5

Wie erzwinge Hochformat in iOS 7, wenn meine Anwendung anfänglich für beide Ausrichtungen unterstützt wird?Wie erzwingt Hochformat?

+1

Nicht klar, können Sie mehr erklären. Brauchen Sie nur Hochformat-Modus in der gesamten App – morroko

+1

mögliche Duplikate von [Hochformat-Ausrichtung erzwingen, während aus dem Querformat Controller anzeigen] (http://stackoverflow.com/questions/14633213/force-portrait-orientation-while-pushing-from-landscape -view-controller) –

Antwort

2
UIViewController *c = [[UIViewController alloc]init]; 
[self presentViewController:c animated:NO completion:nil]; 
[self dismissViewControllerAnimated:NO completion:nil]; 
+0

Kann diesen Code nicht nach Apples Standard, nicht sicher..Aber sein guter Hack. –

+0

Wenn wir diesen Code verwenden, wird unsere App nicht von Apple für die Produktion freigegeben. –

+1

Können Sie bitte erklären, warum das funktioniert? Außerdem sind diese Methoden in iOS 6 veraltet. Es ist möglich, dass Apple beschließt, sie in iOS 8 zu entfernen. Es wäre nicht das erste Mal, dass eine Methode von Apple abgelehnt und kurz danach entfernt wurde. – rtiago42

0

Verwendung folgender Vorgehensweise: In AppDelegate .h

@interface PlayWithWSWithLibAppDelegate : NSObject <UIApplicationDelegate, UITabBarControllerDelegate> { 

     BOOL flagOrientationAll; 
} 

@property (assign) BOOL flagOrientationAll; 

Fügen Sie die folgenden Verfahren in AppDelegate .m-Datei

- (NSUInteger)application:(UIApplication *)application supportedInterfaceOrientationsForWindow:(UIWindow *)window{ 
    //NSLog(@"PlayWithWSWithLibAppDelegate -- supportedInterfaceOrientationsForWindow"); 
    if(flagOrientationAll == YES){ 
     return UIInterfaceOrientationMaskPortrait; 
    } else { 
     return UIInterfaceOrientationMaskAll; 
    } 
} 

folgende Art und Weise Ihrer Ansicht implementieren, die Sie möchte sowohl im Hoch- als auch im Querformat beide für iPhone-Gerät

drehen

Hier ist mein Thread einige, was ähnlich wie Ihr Problem: iOS 7 Interface Orientation

5

Für die gesamte App, öffnen Sie die Projektdatei, gehen Sie auf die Registerkarte Allgemein, um die Einstellungen zu ändern:

enter image description here

Or direkt auf der Info.plist-Datei:

enter image description here

Wenn Sie es nur auf möchten eine bestimmte View-Controller, außer Kraft setzen supportedInterfaceOrientations:

- (NSUInteger)supportedInterfaceOrientations 
{ 
    return UIInterfaceOrientationMaskPortrait; 
} 

Sie mehr über die zweite Methode auf der offiziellen UIViewController documentation lesen kann. Vielleicht finden Sie einen geeigneteren Weg für Ihr spezifisches Problem.

+0

Einfach und richtig, aber passen Sie auf die - (BOOL) shouldAutorotate-Methode. Es darf nicht überschrieben werden oder gibt YES zurück, sonst funktioniert es nicht. – Moose

-2
#import <objc/message.h> 

objc_msgSend([UIDevice currentDevice], @selector(setOrientation:), UIInterfaceOrientationLandscapeRight);//here you may change your desired Orientation 
Verwandte Themen