我有一个类,它是 tableViewController 的子类。我正在尝试旋转我的表格视图。我实现了两种方法:
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
// Return YES for supported orientations
return (interfaceOrientation == (UIInterfaceOrientationPortrait | UIInterfaceOrientationLandscapeLeft |
UIDeviceOrientationLandscapeRight));
}
- (void)didRotateFromInterfaceOrientation:(UIInterfaceOrientation)fromInterfaceOrientation
{
[super didRotateFromInterfaceOrientation:fromInterfaceOrientation];
[self.tableView reloadData];
}
这个控制器被命名为 rootViewController 并且 appDelegate 的方法 didFinishLaunchingWithOptions 的一部分:是
UINavigationController *navController = [[UINavigationController alloc] initWithRootViewController:self.rootViewController];
self.navigationController = navController;
self.window.rootViewController = self.navigationController;
我将 rootViewController 设置为 navigationController 并将其 rootViewController 设置为我的 rootViewController 对象。
我不知道这两种方法是否足以根据方向重新加载表格。我必须包括任何其他方法吗?我看到我的 rootViewController 的 (void)didRotateFromInterfaceOrientation: 在旋转后没有被调用,但 shouldAutorotateToInterfaceOrientation: 即使在不需要时也经常被调用。我看到了一个类似的帖子,他们建议包含 [super didRotateFromInterfaceOrientation: interfaceOrientation] 但它仍然没有用。