iOS:请求UITabBarController轮换的最新解决方案

时间:2011-06-09 10:37:01

标签: iphone objective-c ios uitabbarcontroller rotation

在处理UITabBarController时,什么是旋转内部视图的最新最佳解决方案?我正在玩一个标准的应用程序视图层次结构:在我的主应用程序委托文件中,我正在创建UITabBarController,然后,我正在创建UINavigationController,用UITableViewController填充它(带有实例化的自定义子类),并将UINavigationController添加到第一个标签栏项目。现在,我需要UITableViewController来自动旋转。我知道我需要在所有视图控制器中实现shouldAutorotateToInterfaceOrientation,因此,我在我的自定义UITableViewController子类实现文件中实现了它:

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
  // Return YES for supported orientations
  return YES; 
}

但是UITableViewController没有旋转:(。现在,我知道有UINavigationController和UITabBarController对象,它们位于我的TVC之上,但是这两个对象不是通过子类直接实例化的,所以没有地方可以返回yes但是,我能够通过继承UITabBarController并在其实现文件中实现shouldAutorotateToInterfaceOrientation方法来解决这个问题。但我读过,这是一种非推荐的方法,我的良心感觉不好:)另一个有效的解决方案是为UITabBarController实现一个类别(http://stackoverflow.com/questions/1269704/uitabbarcontroller-morenavigationcontroller-and-the-holy-grail-of-device-rotatio)......

所以,这两个解决方案是我能够应用的唯一解决方案。还有其他“开箱即用”的解决方案,例如,在UITabBarController或smth上设置一些属性吗?

1 个答案:

答案 0 :(得分:0)

在UIVableController中继承UITableViewController或实现UITableView的类中,需要为tableView设置autoresizingMask。它就像

self.tableView.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight;

和TableView应该没问题并正确旋转。

希望这有帮助:)