2009-12-01 35 views
4

我有一个TabBar基础应用程序,它只支持一个特殊视图(UINaviagtionController的rootview)的横向方向。现在我想强制此导航控制器的所有其他视图的纵向方向。 我曾尝试使用强制将新视图推送到UINavigationViewController的纵向方向

[[UIDevice currentDevice] setOrientation:UIDeviceOrientationPortrait];

这个伟大的工程,但这段代码是一个私人API调用,我不能冒险一个应用程序拒绝。

我也尝试手动旋转下一个视图,但这只会旋转视图而不是导航或标签栏。

有没有相似的方法来强制改变方向?

回答

6

目前没有办法做到这一点。 看看这个question,我有同样的问题。使用tabbar应用程序,您必须拥有所有自动转换功能,或者什么也不做。你可以找到方法让每个视图有不同的答案,但实际上这是行不通的。我不知道这是否是预期的行为或错误,无论如何,我知道唯一可行的解​​决方案(不使用未公开的API)是自行管理旋转,而不依赖于自动旋转。

换句话说,这意味着你需要开始定向通知(看UIDevice,有方法来启动和停止关于设备方向的通知),然后为每个你想旋转的视图注册为观察者,并管理方向手动,像这样(不记得在那里我得到这个片段):

// Rotates the view. 
CGAffineTransform transform = CGAffineTransformMakeRotation(M_PI/2); 
self.view.transform = transform; 
+0

由于安迪的帮助,我 – Naresh 2011-11-26 09:36:44

相关问题