Chcę obsługiwać obrót w systemie iOS 6. Problem polega na tym, że przeglądałem wiele dokumentacji i pytań związanych z przepełnieniem stosu, ale nie znalazłem żadnych nawet drobnych rozwiązań. Mam tylko zauważyć, że mam dodać te dwie metody moim zdaniem klas Controller - jednak, jeśli się nie mylę, nie działają w taki sam sposób jak wcześniej iOS 6 Metody:iOS 6 Obrót: Przesyłanie kontrolera widoku
- (BOOL)shouldAutorotate
{
return YES;
}
- (NSUInteger)supportedInterfaceOrientations
{
return UIInterfaceOrientationMaskAll; // use what is appropriate for you.
}
My Aplikacja obecnie obraca się w systemie pre-iOS6 przy użyciu następującego kodu. Zwróć uwagę, że używam parametrów orientacji interfejsu, aby określić, czy zamierzam przesłać mój kontroler widoku. Jak mogę to wdrożyć w delegatach rotacji systemu iOS 6?
-(void)didRotateFromInterfaceOrientation:(UIInterfaceOrientation)fromInterfaceOrientation {
UIInterfaceOrientation toOrientation = self.interfaceOrientation;
if (self.tabBarController.view.subviews.count >= 2)
{
UIView *tabBar = [self.tabBarController.view.subviews objectAtIndex:1];
if(toOrientation != UIInterfaceOrientationLandscapeLeft && toOrientation != UIInterfaceOrientationLandscapeRight)
{
CUSTOM_DEBUG_LOG("\n\nRotated back to Portrait");
tabBar.hidden = FALSE;
}
}
}
- (void) willAnimateRotationToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation duration:(NSTimeInterval)duration
{
if (interfaceOrientation == UIInterfaceOrientationLandscapeLeft || interfaceOrientation == UIInterfaceOrientationLandscapeRight)
{
CUSTOM_DEBUG_LOG("\nView going landscape");
ScrollViewController *s = [[ScrollViewController alloc] initWithNibName:@"ScrollViewController" bundle:nil];
[self.navigationController pushViewController:s animated:NO];
[s release];
self.tabBarController.tabBar.hidden = YES;
self.navigationController.navigationBar.hidden = YES;
}
}
Zobacz film WWDC 2012 na temat kontrolerów widoku. – matt
Myślę, że nie sformułowałem poprawnie mojego pytania, ponieważ moja aplikacja działa bez żadnej odpowiedzi tutaj. Zasadniczo nie byłem w stanie uzyskać rotacji działającej w systemie iOS i pomyślałem, że funkcje willAnimate ... również są przestarzałe. Okazuje się, że nie są. Moja aplikacja nadal działa. Brawo? Niestety, na mojej stronie mam gigantyczne, brzydkie białe paski, których muszę się pozbyć. Czas zadać kolejne pytanie. –