0

我正在开发一个包含 TabBar 控制器的应用程序。在它的选项卡中,我有一个 UITableViewController 的子类,在这个列表中,我在第一个单元格中有一个核心图,在接下来的 4 个单元格中有一些其他数据。当我在 shouldAutorotateToInterfaceOrientation 方法中返回 YES 时,我希望列表视图的自动调整大小会发生,但是......什么也没有。当我在 willRotateToInterfaceOrientation 方法中添加一些日志时,它们不会显示。有什么我错过的吗?非常感谢,卢克

// Override to allow orientations other than the default portrait orientation.
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
// Return YES for supported orientations
//return (interfaceOrientation == UIInterfaceOrientationPortrait);
NSLog(@"Orientation");
return YES;
}
- (void)willRotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration
{
[super willRotateToInterfaceOrientation:toInterfaceOrientation  duration:duration];

NSLog(@"Rotating");

if (toInterfaceOrientation == UIInterfaceOrientationLandscapeRight)
{
    NSLog(@"view land:%@", self.view);
}

if (toInterfaceOrientation == UIInterfaceOrientationPortrait)
{
    NSLog(@"view portrait:%@", self.view);
} 
}
4

2 回答 2

2

UITabBarController是的,除非你继承并正确覆盖它的shouldAutorotateToInterfaceOrientation:方法,否则它不会工作。

在此处查看我的问题和相关答案

于 2010-06-18T15:43:21.907 回答
0
add this method in category 
@implementation UITabBarController(UITabBarControllerCategory)

-(BOOL)shouldAutorotateToInterfaceOrientation:
(UIInterfaceOrientation)toInterfaceOrientation
{
  AppDelegate *appDelegate = (AppDelegate *)[[UIApplication sharedApplication]delegate];

  if ([AppDelegate isLandScapeOnly]){
    return NO;
 }
return YES;
}
于 2012-09-14T11:25:39.520 回答