2013-11-04 14 views
8

Ich muss den ersten View-Controller nur im Hochformat öffnen. Als Rest View Controller werden beide Orientierungen verwendet. Also habe ich beide Orientierung in Plist-Datei hinzugefügt.iOS 7 - Landschaftsausrichtung nur in einem View-Controller einschränken

-(BOOL) shouldAutorotate { 
    //Never called 
} 

- (NSUInteger) supportedInterfaceOrientations { 
    //Never called 
} 

kann mir sagen, wie

+1

sollten Sie Navigation Controller für Ihren Fall verwenden – gaussblurinc

+0

@Nabeel, Haben Sie die Antwort Ihrer Frage. Wenn ja bitte teilen Sie –

+0

Ich habe die Lösung gepostet. –

Antwort

10

es einfach Feste von UINavigationController-Klasse erstellen und überwiegende

-(NSUInteger)supportedInterfaceOrientations 
{ 
    AppDelegate *appDelegate = (AppDelegate *) [UIApplication sharedApplication].delegate; 
    if(appDelegate.isOrientationOn) { 
     return UIInterfaceOrientationMaskAll; 
    } 
    return UIInterfaceOrientationMaskPortrait; 
} 

Verwenden Sie diese benutzerdefinierte Navigationssteuerungsklasse im Stammfenster a Das ist alles.

+1

Was bedeutet appDelegate.isOrientationOn, es gibt Fehler! – AsifHabib

+0

@AsifHabib es ist Ihre Logik :) – onmyway133

+0

Saubere, einfache, effiziente Lösung. Codierung als Kunst! – user2260054

2

Diese Orientierung des View-Controller verriegeln beschränken im Hochformat-Modus:

- (BOOL)shouldAutorotate 
{ 
    return NO; 
} 

- (NSUInteger)supportedInterfaceOrientations 
{ 
    return UIInterfaceOrientationMaskPortrait; 
} 
+0

Diese Methoden rufen jedoch keine neue Bildschirmbelastung auf. –

Verwandte Themen