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 类的任何实例来旋转,但其他都不需要。我已经完成了我能想到的所有事情,比如将 return YES 添加到我的 SLImageViewController 和其他修复中。

谁能告诉我我做错了什么?

4

1 回答 1

3

您可以通过以下方式完成此操作:

  1. 将 statusBar 方向设置为viewWillAppearandviewWillDisappear

-(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. 呈现该视图模式将触发shouldAutorotateToInterfaceOrientation方法
于 2011-03-12T16:34:57.480 回答