2009-12-26 30 views
0

我有一个标签栏设置与几个选项卡。第一个tabitem是以编程方式加载以纵向布局的xib的viewcontroller。当用户旋转手机时,它会自动呈现横向布局的模式视图。这个机制工作正常。iPhone:一些视图其他景观风景

当设备旋转到肖像模式时,它驳回的模态视图和的TabBar是可见在底部。我希望我的其他一些标签栏项目(如scrollview和webview)能够在设备旋转时自动旋转到横向。

我已经实现了一个名为RotateTabBarViewController的类,该类包含shouldAutorotateToInterfaceOrientation方法,并检查selectedViewController上相同方法的值。因此,如果我的webview中的shouldAutorotateToInterfaceOrientation方法返回true,则视图将按预期旋转。

这是问题所在。当旋转的视图处于横向模式时,Tabbar仍然可见,这意味着用户可以单击第一个项目的图标。当第一个项目被点击时,它知道它处于横向模式,并自动再次加载模态视图。唯一的问题是视图在屏幕上偏移。

我正在寻找的是将调整模式视图到它应该是一个解决办法。我不确定这是否是需要重新排列的主要视图,还是仅仅是模态视图。

以下链接包含该概念的演示。

http://www.veryniceindustries.com/rotation_demo.zip

  • 旋转装置,以肖像
  • 选择项目两个
  • 旋转装置景观(需要一些帮助重新调整这一观点)
  • 选择项目中的一个(模态出现的景观,但偏移)

任何帮助将不胜感激。

最佳, 豪伊

+0

我期待着你的代码,规划为iSlate太我看到:) – Jonathan 2009-12-26 13:11:16

+0

类似的东西 - 不知怎的,这个项目拥有所有学习如何建立一个更大的应用程序的必要组成部分。 – Ward 2009-12-26 13:57:16

回答

0

你有没有考虑落实上的viewController#1的viewWillAppear中的方法,并纠正视图的框架?

或者处理它在itemOneViewController上的orientationChanged或updateItemOneView方法?

PS:感谢suppling的源代码,作为一个年轻的OBJ-C程序员总是很高兴看到别人如何处理的问题。

+0

感谢您的回应 - 但我是这样一个noob我不知道如何改变框架。是在viewWillAppear方法中传递一个新框架给“自我”还是涉及更多的事情?发生有一个片段,我可以检查出来吗? 谢谢, Howie – Ward 2009-12-26 13:56:08

+0

那么UIViewController是不是一个UIView,所以你实际上想要的东西像[self.view setFrame:UITabBarController.view.frame]。 UITabBarController应该是您正在使用的UITabBarController的实例。您可以在IB中进行参考并将其分配给伊娃,以便您可以轻松参考。 帧是C结构体调用CGRect,你可以使它们与CGRectMake() – Jonathan 2009-12-26 16:04:26

+0

看起来像itemOneViewController视图和itemOneLandscapeViewController视图的来源都是0,0。当我从一个tabbar项目转到另一个项目时是否有其他可能? – Ward 2009-12-27 20:06:56