从一个UITabbar项目更改为另一个项目时如何更新方向

时间:2012-04-30 22:55:34

标签: ios uitabbar

我的问题很简单:

  • 我有一个UITabBar和4个UITabBarItems的视图,显示4个不同的子视图(4个不同的UIView类)。
  • 我希望3个第一个视图是纵向,最后一个是横向或纵向。
  • 为此,我已经设置

    -(BOOL)shouldAutorotateToInterfaceOrientation(UIInterfaceOrientation)interfaceOrientation{
         if (myTabBar.selectedItem.tag==4){
             return YES;
         } else {
             return ((interfaceOrientation==UIInterfaceOrientationPortrait)|(interfaceOrientation==UIInterfaceOrientationPortraitUpsideDown));
         }
     }
    

...如果我在第四个视图中旋转屏幕,那可以正常工作。

但是...

- 如果我在第四个视图中,并且单击三个第一个UITabBarItem中的任何一个,我将移动到正确的视图,但方向仍然是横向,并且不会切换到纵向

注意:我已经在三个第一个视图类中包含了 - (BOOL)shouldAutorotateToInterfaceOrientation ....但它没有改变任何东西。

换句话说:我的问题是在旋转设备后更新了视图方向,而不是在设备旋转时更新,我点击另一个UITabBarItem。

感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

在考虑了这个之后,我认为解决方案可能是触发NSNotification事件到已经加载但尚未收到“shouldAutorotateToInterfaceOrientation”消息的3个其他UITabBar视图。

还有其他想法吗?