2012-07-18 17 views
7

Czy ktoś, kto próbuje najnowszą wersję beta iOS 6 beta (wersja 2 lub 3), nie działa tak samo automatycznie?Obrót ekranu IOS 6 bez użycia storyboardu

nie używam storyboard ale czysty kontrolę nawigacja:

self.navController = [[UINavigationController alloc] initWithRootViewController:self.viewController]; 
[self.window addSubview:navController.view]; 

oraz:

- (BOOL)shouldAutorotateToInterfaceOrientation: ](UIInterfaceOrientation)interfaceOrientation 
{ 
    if ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPhone) { 
     return (interfaceOrientation != UIInterfaceOrientationPortraitUpsideDown); 
} else { 
    return YES; 
} 
} 

- (NSUInteger)supportedInterfaceOrientations{ 
return UIInterfaceOrientationMaskAllButUpsideDown; 
} 

ALE IOS ma zwolennikiem wcale, współpracuje z wszystkimi poprzednimi iOS na 3GS/4S i Symulator 4.3,5.0.5.1, ale iOS 6 wydaje się po prostu wadliwy

Odpowiedz

0

Rozwiązaniem jest, że: Ponieważ moja aplikacja próbuje wspierać od 4.3+, muszę używać kontrolera nawigacji, aby zrobić każdy przełącznik widoku.

przez ios6 wydaje się delegatów do kontrolera nawigacji, muszę zdefiniować własny kontroler nawigacyjny, a także warunki i funkcje, aby zmienić jego zachowanie rotacji.

Po załadowaniu widoku wykonuję wtedy ([self.navigationCOntroller setEnableLandscape: (BOOL) false]). w ten sposób masz pełny kontroler swojego kontrolera nawigacyjnego.

UWAGA: Próbowałem przesłonić metody kontrolera nawigacyjnego, ale wydaje się, że zostaną zignorowane. (Dotyczy to również ios 6.0), nie testowałem jeszcze 6.1, więc nie jestem pewien, czy jest on naprawiony (proszę dać mi znać, jeśli to robi)

10

Autorotacja zmienia się w iOS 6. W iOS 6, metoda shouldAutorotateToInterfaceOrientation: z UIViewController jest przestarzała. W jego miejsce należy użyć metod: supportedInterfaceOrientations i shouldAutorotate.

Read more here.

+0

Kiedy wywoływana jest funkcja shouldAutorotate? Wydaje mi się, że nie jest to do mnie potrzebne, gdy obracam ekran ... A może to jest problem z symulatorem? – shim

+0

Sprawdź moje pytanie tutaj http://stackoverflow.com/questions/12640870/ios-6-force-device-orientation-to-landscape –

7

zamiast [self.window addSubview:navController.view];

wkładki self.window.rootViewController = navController;

+0

Aby podnieść jakość twojego posta, podaj, jak/dlaczego twoja odpowiedź rozwiąże problem . –

+1

Właśnie uratowałeś mi życie. Próbowałem wszystkiego innego przez ostatnie 3 godziny. Otrzymuję połączenia zwrotne, ale iOS zignorował wszystko, co tam umieściłem. Dziekuję Dziekuję Dziękuję! – gilm

+0

Działa to po skompilowaniu na iOS6 w systemie iOS6, ale nie działa dla mnie, gdy jest skompilowany na iOS6 uruchomionym w OS iOS5! Czy próbowałeś sprawdzić, jak to działa na iOS5? – Koen

Powiązane problemy