推动之前旋转视图?

时间:2012-01-20 19:19:11

标签: iphone objective-c xcode

我有两个观点A和B. A推到B,B弹回A。 在A中,使用“shouldAutorotateToInterfaceOrientation”我将旋转限制为Portrait和PortraitUpsideDown。

在B中我将旋转限制为LandscapeLeft / Right。

但是,当我按下以查看B时,无论设备的初始方向如何,视图B也会显示纵向,直到我旋转设备。从那时起,它会像它应该的那样自动旋转到LandscapeLeft / Right。

到目前为止我读到的所有内容都谈到了shouldAutorotateToInterfaceOrientation,但我的设置是正确的(至少我认为是这样)。

如何使视图B始终以横向开始?

感谢。

2 个答案:

答案 0 :(得分:1)

您需要使用模态视图。并有一个完成按钮或类似的东西来触发dismissModalViewControllerAnimated。

答案 1 :(得分:1)

让名为B的视图控制器始终以横向方式启动的最简单方法是以模态方式呈现它,而不是将其推送到导航控制器。这似乎是YouTube应用程序用于旋转界面的方法。

B *nextVC = [[B alloc] initWithNibName:nil bundle:nil];
[self presentModalViewController:nextVC animated:YES];

如果您绝对需要推送视图,可以执行以下操作:

B *nextVC = [[B alloc] initWithNibName:nil bundle:nil];
[self.navigationController pushViewController:nextVC animated:NO];
UIViewController *cont = [[UIViewController alloc] initWithNibName:nil bundle:nil];
[self presentModalViewController:cont animated:NO];
[cont dismissModalViewControllerAnimated:NO];

信不信由它实际上产生了很好的效果。