IOS 6 wymusza orientację urządzenia na krajobraz

Dałem aplikację z 10 kontrolerami widoku. Używam kontrolera nawigacji do ich załadowania / wyładowania.

Wszystkie oprócz jednego są w trybie portretowym. Załóżmy, że siódmy VC jest w krajobrazie. Potrzebuję go, aby był ładowany w krajobrazie.

W IOS 6 zasugeruj sposób wymuszenia zmiany orientacji z pionowej na poziomą (i dobrze będzie pracować również w IOS 5).

Oto jak to robiłemPRZED IOS 6:

- (void)viewWillAppear:(BOOL)animated {
    [super viewWillAppear:animated];
    UIViewController *c = [[[UIViewController alloc]init] autorelease];
    [self presentModalViewController:c animated:NO];
    [self dismissModalViewControllerAnimated:NO];
}
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation{
    return (interfaceOrientation == UIInterfaceOrientationPortrait);
}

Prezentowanie i odrzucanie modalnego VC zmuszało aplikację do sprawdzenia jej orientacjishouldAutorotateToInterfaceOrientation dzwonił.

Co próbowałem w IOS 6:

- (BOOL)shouldAutorotate{
    return YES;
}
-(NSUInteger)supportedInterfaceOrientations{
    return UIInterfaceOrientationMaskLandscape;
}
- (UIInterfaceOrientation)preferredInterfaceOrientationForPresentation{
    return UIInterfaceOrientationLandscapeLeft;
}

Podczas ładowania kontroler pozostaje w portrecie. Po obróceniu urządzenia zmiana orientacji jest w porządku. Ale muszę sprawić, aby kontroler obracał się automatycznie do krajobrazu na obciążeniu, dlatego użytkownik będzie musiał obrócić urządzenie, aby poprawnie zobaczyć dane.

Inny problem: po obróceniu urządzenia z powrotem do portretu, orientacja przechodzi w portret, chociaż określiłem wsupportedInterfaceOrientations tylkoUIInterfaceOrientationMaskLandscape. Dlaczego tak się dzieje?

Również,ŻADEN powyżej 3 metody są wywoływane.

Niektóre (przydatne) dane:

W moim pliku plist określiłem 3 orientacje - wszystkie z wyjątkiem do góry nogami.Projekt został uruchomiony w Xcode 4.3 IOS 5. Wszystkie klasy, w tym xib, zostały utworzone przed Xcode 4.5 IOS 6, teraz używam ostatniej wersji.W pliku plist pasek stanu jest ustawiony na widoczny.W pliku xib (tym, który chcę znaleźć w krajobrazie) pasek stanu to „Brak”, orientacja jest ustawiona na krajobraz.

Każda pomoc jest doceniana. Dzięki.

questionAnswers(12)

yourAnswerToTheQuestion