设备旋转到横向时如何打开新视图?

时间:2011-03-01 10:25:55

标签: iphone orientation rotation landscape portrait

我有一个应用程序,它围绕着肖像模式中的一堆viewControllers,但在特定的细节视图中,如果设备被旋转到横向模式,我需要打开另一个视图。 因此,用户将查看肖像模式中的信息视图,如果用户随后将设备旋转到横向模式,则会显示包含其他信息的新视图。如果用户旋转回纵向,则需要删除添加的视图,以便可以看到“原始”详细视图。 重要的是“原始”细节视图不会旋转到横向 - 仅在横向模式下打开新视图。

我尝试过使用shouldAutorotateToInterfaceOrientation:并设法让它打开一个viewController,但是它没有在横向视图中显示所以它看起来全部搞砸了加上我在旋转回来时让视图消失时遇到了一些麻烦portraitmode。

我该怎么做?

3 个答案:

答案 0 :(得分:0)

使用视图控制器更改方向方法检查方向是否已更改,如果其旋转到横向添加了横向视图,并且当设备旋转为纵向时,从视图控制器的视图中删除视图。

答案 1 :(得分:0)

shouldAutorotateToInterfaceOrientation

中的

if(UIInterfaceOrientation == UIInterfaceOrientationPortrait){
NewView *newViewController = [[NewView alloc]initWithNib:@"NewView" bundle:nil];
[self.navigationController pushViewController:newViewController animated:NO];
}

你也可以为所有其他方向重复这个。

答案 2 :(得分:0)

使用shouldAutoRotate不起作用,因为打开的视图将以肖像模式而不是横向打开。

我在子视图中使用beginGeneratingDeviceOrientationNotifications和shouldAutoRotate结束了解决方案。