Po załadowaniu centrum gier jego domyślną orientacją jest portret. Aby zablokować go w trybie poziomym, dodano kategorię.Blokada logowania do centrum gier w krajobrazie tylko w systemie iOS 6
@implementation GKMatchmakerViewController (LandscapeOnly)
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
return (interfaceOrientation == UIInterfaceOrientationLandscapeLeft || interfaceOrientation == UIInterfaceOrientationLandscapeRight);
}
-(NSUInteger)supportedInterfaceOrientations
{
return UIInterfaceOrientationMaskLandscape;
}
- (BOOL)shouldAutorotate {
return NO;
}
@end
Działa poprawnie w wersjach poniżej iOS 6. W systemie iOS6 pokazuje jednak błąd.
Zakończenie aplikację spowodowane nieprzechwyconego wyjątku „UIApplicationInvalidInterfaceOrientation”, powód: „Obsługiwane orientacje ma wspólną orientację z aplikacją i shouldAutorotate wraca TAK”
Proszę wyjaśnić rozwiązanie.
Awesome! Uratowałeś mi tyłek :) – yonix
Dzięki! Mój tyłek też był zapisany :) –
Pracował również dla mnie, ale w moim przypadku nie korzystałem z UIBNavigationController, ale z UIViewController (jego podklasy), jednak wciąż musiałem dodać do niego numer metody 2. W tej odpowiedzi można zamienić UIBNavigationController na UIViewController. –