UITableViewController子视图旋转

时间:2013-04-26 22:57:39

标签: ios uinavigationcontroller rotation

我是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

     

shouldAutorotate

     

willRotateToInterfaceOrientation:toInterfaceOrientation   持续时间:持续时间

     

willAnimateRotationToInterfaceOrientation:interfaceOrientation   持续时间:持续时间

重写

  

shouldAutorotate

     

shouldAutorotateToInterfaceOrientation:interfaceOrientation

让他们在rootViewController中返回NO / YES并使用

以所需的方式设置允许的方向
  

supportedInterfaceOrientations

(在rootViewCOntroller和最后一个视图中),我得到了那些结果:

  • 如果我使用解决方案 A ,则所有视图都不会旋转。
  • 如果我使用解决方案 B ,则所有视图始终会旋转。

我做错了什么? 提前感谢您的帮助

1 个答案:

答案 0 :(得分:0)

将它们添加到viewController中,让我知道它是否有效。

// iOS5旋转

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

// iOS6 Rotation

- (NSUInteger)supportedInterfaceOrientations
{
    return UIInterfaceOrientationMaskAll;
}

- (BOOL)shouldAutorotate
{
    return YES;
}