我是 stackoverflow 和 Objective-C 编程的新手。我已经搜索了下面描述的问题,但找不到有效的解决方案。
我的应用程序是一个简单的离线浏览应用程序,具有导航结构。在 appDelegate 中,我通过以下方式之一加载 RootViewController (UITableViewController):
解决方案A
[window addSubview:navigationController.view];
[window makeKeyAndVisible];
return YES;
解决方案B
RootViewController* rootviewcontroller = [[RootViewController alloc] initWithNibName:@"RootViewController" bundle:nil];
navigationController = [[UINavigationController alloc] initWithRootViewController:rootviewcontroller];
rootViewController 只是简单地推送一些视图,即
TipAndTrickViewController *mTipAndTrick = [[TipAndTrickViewController alloc]initWithNibName:@"TipAndTrickViewController" bundle:nil];
[self.navigationController pushViewController:mTipAndTrick animated:YES];
在更深层次的视图中,我展示了一个详细的 modalView (UIViewController)。我想要的是仅在最后一个视图中启用自动旋转。肖像方向是所有先前视图所需的。最后一个视图以正确的方式实现:
shouldAutorotateToInterfaceOrientation:interfaceOrientation
应该自转
willRotateToInterfaceOrientation:toInterfaceOrientation 持续时间:持续时间
willAnimateRotationToInterfaceOrientation:interfaceOrientation 持续时间:duration
覆盖
应该自转
shouldAutorotateToInterfaceOrientation:interfaceOrientation
使它们在 rootViewController 中返回 NO/YES 并以所需的方式设置允许的方向,使用
支持的接口方向
(在 rootViewCOntroller 和最后一个视图中),我得到了这些结果:
- 如果我使用解决方案A,所有视图都不会旋转。
- 如果我使用解决方案B,所有视图总是旋转。
我做错了什么?预先感谢您的帮助