iOS6: supportedInterfaceOrientations nie działa (jest wywoływany, ale interfejs nadal się obraca)

W mojej aplikacji mam wiele widoków, niektóre widoki muszą obsługiwać zarówno portret, jak i krajobraz, podczas gdy inne widoki muszą obsługiwać tylko portret. Tak więc w podsumowaniu projektu wybrałem wszystkie orientacje.

Poniższy kod działał, aby wyłączyć tryb krajobrazu na danym kontrolerze widoku przed iOS 6:

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
    // Return YES for supported orientations
    return (interfaceOrientation == UIInterfaceOrientationPortrait);
}

Ponieważ shouldAutorotateToInterfaceOrientation było przestarzałe w iOS6, zastąpiłem powyższe:

-(NSUInteger)supportedInterfaceOrientations{
    return UIInterfaceOrientationMask.Portrait;
}

Ta metoda jest poprawnie wywoływana, gdy pojawia się widok (mogę ustawić punkt przerwania, aby to zapewnić), ale interfejs nadal obraca się do trybu poziomego, niezależnie od tego, że zwracam maskę tylko w trybach portretowych. Co ja robię źle?

Wydaje się, że obecnie niemożliwe jest zbudowanie aplikacji, która ma inne wymagania orientacyjne na widok. Wydaje się, że przestrzega tylko orientacji określonych w podsumowaniu projektu.

questionAnswers(15)

yourAnswerToTheQuestion