0

我是 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,所有视图总是旋转。

我做错了什么?预先感谢您的帮助

4

1 回答 1

0

将这些添加到您的 viewController 并让我知道它是否有效。

// iOS5 旋转

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
    return YES;
}

// iOS6 旋转

- (NSUInteger)supportedInterfaceOrientations
{
    return UIInterfaceOrientationMaskAll;
}

- (BOOL)shouldAutorotate
{
    return YES;
}
于 2013-04-27T05:22:13.927 回答