0

我的问题很简单:

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

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

...如果我在第四个视图中旋转屏幕,效果很好。

但...:

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

注意:我在三个第一个视图类中的每一个中都包含了 -(BOOL)shouldAutorotateToInterfaceOrientation...,但它并没有改变任何事情。

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

谢谢你的帮助。

4

1 回答 1

0

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

还有其他想法吗?

于 2012-05-05T19:58:08.140 回答