有选择地允许在TabBar/UINavigation应用程序中自动旋转

问题描述:

我有一个UITabBar/UINavigation应用程序,并且在给定视图中允许自动旋转时遇到了一些麻烦。有选择地允许在TabBar/UINavigation应用程序中自动旋转

TabBar允许使用表格视图项目更改节。当其中一个项目被点击时,我推动一个隐藏TabBar并且应该自动旋转的新视图。我尝试了简单的方式,这对我来说似乎最合乎逻辑:在rootViewController中禁用autorotate,并允许在detailViewController中,但这不起作用(shouldAutorotateToInterfaceOrientation返回YES,但willRotateToInterfaceOrientation永远不会调用,视图也不会自动旋转)。我读过TabBar中的所有VC应该返回YES到shouldAutorotateToInterfaceOrientation,所以我这样做了,但结果是现在我的整个应用程序都在旋转。

然后我subclassed我的UINavigationController并将shouldAutorotate设置为NO,希望我可以检测到显示的视图实际上是一个detailView,然后返回YES ...我似乎无法做到这一点。

任何帮助在那里?

谢谢!

安东尼

这听起来像你已经有了一个建立像它具有播放列表视图中的TabBar iPod应用程序,歌曲查看等,但是当你去到一首歌曲的详细视图会消失。详细视图可以旋转,但Tabbar视图不会。当您旋转标签栏时,它会变成一个封面流程细节视图。

我很确定他们通过将tabbar放在导航控制器中来做到这一点。当你转到详细视图时,它会完全弹出tabbar并推送详细视图。

所以实际的层次结构看起来类似:

Nav { 
    tabbar { 
     playlist 
     Artist 
     //... other tabs 
    } 
    detail view portrait 
    detail view cover flow 
} 

的兄弟姐妹意见(TabBar,所以详细的画像,细节的CoverFlow)在任何一个时间被推只有一个。

iPod应用程序执行此操作是因为详细视图是整个应用程序的主要功能视图,因此应用程序的其余部分都是围绕其导航而构建的。如果你的应用不是这种情况,那么这个设置可能比它的价值更麻烦。