我在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。我正试图找出现在设计它的最佳方法,以便以后进行最少量的去耦。感谢。
答案 0 :(得分:1)
您可以考虑使用presentModalViewController:animated:用于纵向模式。
在
处查看AlternateViews的示例代码它为横向模式提供了一个模态视图控制器。