旋转时显示新的UIView

时间:2011-10-07 18:20:44

标签: iphone

我在Beginning iPhone 4书中跟随一个例子,用于在视图旋转时创建新视图。我有这个ViewController的两个视图。在

- (void)willAnimateRotationToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration

我将PortraitView(通常我们的应用程序从横向开始)添加为子视图

[self.view addSubview:PortraitView];

基本上隐藏所有用于横向的元素,并取消隐藏Portrait的所有元素。 (似乎我需要这样做,因为我的背景是clearColor,而Landscape视图中的元素显示出来。

现在,我想在纵向视图中选择一个项目(它是一个UITableView),然后在纵向模式下转到另一个detailView。如果用户旋转回Landscape,那么我想回到它们在原始Landscape位置的位置。当我从UITableView中选择一个项目时显示这个新视图时,我应该推送一个新的ViewController并显示它的视图,还是应该另外显示/隐藏addSubview?看起来我应该推送一个新的ViewController,但是当这个ViewController旋转回Landscape时,它如何知道回到原始的Landscape视图,因为它是一个不同的ViewController。我正试图找出现在设计它的最佳方法,以便以后进行最少量的去耦。感谢。

1 个答案:

答案 0 :(得分:1)

您可以考虑使用presentModalViewController:animated:用于纵向模式。

处查看AlternateViews的示例代码

http://developer.apple.com/library/ios/#samplecode/AlternateViews/Introduction/Intro.html#//apple_ref/doc/uid/DTS40008755

它为横向模式提供了一个模态视图控制器。