Mam aplikację na iPhone aktualizuję do iOS 6, która ma problemy z rotacją. Mam UITabBarController
z 16 UINavigationCotrollers
. Większość elementów podrzędnych może pracować w układzie pionowym lub krajobrazowym, ale niektóre z nich to tylko portret. Z iOS 6 rzeczy obracają się, kiedy nie powinny.iOS 6 UITabBarController obsługiwana orientacja z bieżącym kontrolerem UINavigation
Próbowałem instacji TabBarController zwrócić supportedInterfaceOrienations
bieżącego navigationController w wybranym viewController:
- (NSUInteger)supportedInterfaceOrientations{
UINavigationController *navController = (UINavigationController *)self.selectedViewController;
return [navController.visibleViewController supportedInterfaceOrientations];
}
To dało mi bliżej. Kontroler widoku nie obróci się poza pozycję, gdy jest widoczny, ale jeśli jestem na poziomych i przełączanych kartach, nowa karta będzie w krajobrazie, nawet jeśli nie jest obsługiwana.
Idealnie aplikacja będzie dostępna tylko w obsługiwanym wyglądzie bieżącego kontrolera widocznego widoku. Jakieś pomysły?
To prawie dla mnie działa. Problem polega na tym, że jestem już w krajobrazie, kiedy przełączam zakładki na portret, ale wciąż jest krajobraz. Obrotowy portret naprawia go i nie będzie się obracał z powrotem w krajobraz, ale nadal potrzebuję go portretować, gdy pierwszy raz się załaduje. – Ryan
Nie jestem pewien, co dokładnie trzeba zrobić, aby go obrócić, ale założę się, że robisz to w - (void) viewWillLayoutSubviews. Może nie być dokładnie z tą nazwą metody z pamięci. Moje własne widoki, w których użyłem tego kodu, zmieniają się całkowicie po obróceniu i używam tej metody do ponownego skonfigurowania ich z powrotem do trybu portretu. Możesz także wypróbować coś w -viewWillDisappear. Może [self.view setNeedsDisplay]. Nie jestem w Xcode w tej chwili, więc są to po prostu pomysły, które chciałbym zbadać w twoim przypadku. –
Nice! Działa jak marzenie! – Dennso