2011-01-21 2 views
3

У меня есть контроллер панели вкладок с этим кодомСоздание один конкретный класс контроллера представления автоматического поворота в панели приложения вкладки, но заставляя все другие классы зрения контроллера остаться портрету

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation { 
    // Return YES for supported orientations 
    //NSLog(@"object type %@" ,nil); 
    if([[self navigationController ] isKindOfClass:[UINavigationController class]]) 
     if([[[self navigationController] visibleViewController] isKindOfClass:[SLImageViewController class]]) 
      return YES; 
    return (interfaceOrientation == UIInterfaceOrientationPortrait); 
} 

мне нужен любой экземпляр класс SLImageViewController для вращения, но ни один из остальных. Я сделал все, о чем я могу думать, например, добавить возврат YES к моему SLImageViewController и другим исправлениям.

Может ли кто-нибудь сказать мне, что я делаю неправильно?

+0

ли код выше от UITabBarController подкласса или UIViewController в одной из вкладок? Также .. это правильное понимание вашего вопроса: вы хотите, чтобы авторотация происходила, когда показывалась конкретная ваша вкладка, но не тогда, когда один из других? – rgeorge

+0

Это из подкласса UITabBarController –

+0

Я хочу, чтобы только SLImageViewControllers вращались, когда они видны. Все остальные должны оставаться на портрете. –

ответ

3

Вы могли бы выполнить это:

  1. установки STATUSBAR ориентация на viewWillAppear и viewWillDisappear

-(void) viewWillAppear:(BOOL)animated { [super viewWillAppear: animated]; [[UIApplication sharedApplication] setStatusBarOrientation: UIInterfaceOrientationLandscapeRight]; }

-(void) viewWillDisappear:(BOOL)animated { [super viewWillDisappear: animated]; [[UIApplication sharedApplication] setStatusBarOrientation: UIInterfaceOrientationPortrait]; }

и вращая вид вручную: self.view.transform = CGAffineTransformMakeRotation(M_PI/2);

  1. представляя, что вид modaly вызовет shouldAutorotateToInterfaceOrientation метод