2014-07-21 142 views
0

我的应用程序需要同时支持纵向和横向模式,只有纵向的一个视图除外。我在论坛上发现我必须继承导航控制器,然后使用SupportedInterfaceOrientations方法来处理它。iOS7自动旋转视图

但是,我的应用程序有不同的布局,有一个tabbar控制器作为rootview控制器,然后每个tabbar控制器都有自己的导航控制器。我还在rootview控制器上提供了一个登录视图(用于在app中进行身份验证)。现在问题是我应该在哪里添加

- (BOOL)shouldAutorotate 
{ 
    return NO; 
} 

- (NSUInteger)supportedInterfaceOrientations 
{ 
    return UIInterfaceOrientationMaskPortrait; 
} 

此代码 - 在导航控制器或Tabbar控制器或AppDelegate中。

+0

的图,是一个即是唯一的肖像?它是登录视图吗? – matt

+0

可能重复[在iOS6中,麻烦强制ViewController到某些interfaceOrientation推入堆栈时](http://stackoverflow.com/questions/15300819/in-ios6-trouble-forcing-viewcontroller-to-certain-interfaceorientation-when-脓液) – matt

回答

0

除非视图是登录视图,否则您应该无处添加该代码。 iOS 7不支持具有特殊方向的标签栏控制器或导航控制器的单个子项。

在iOS 7中,如果您将代码放在登录视图中,这将适用于登录视图,因为它是一个呈现的视图控制器,并且此配置对于呈现的视图控制器是受支持的。

(在iOS系统中8,因为它已被接种到这个时候,它甚至不会为登录视图工作)。

+0

只有纵向视图不是登录视图,它是Tabbar的视图。你的意思是我不能只有肖像模式下的一个tabbar项目和纵向和横向模式下的其他tabbar项目。 – User382

+0

我的意思是说。例如,请参阅我的答案:http://stackoverflow.com/a/15301322/341994我对导航控制器的说法与标签栏控制器同样适用。你所描述的只能在iOS 5和更早版本中使用。 – matt

+0

如果以上情况属实,如何创建仅适用于横向视图的应用程序。如果您在Info.plist中指定支持的设备方向,那么它应该应用于所有视图,而不管它是否是标签栏或导航栏或模型视图。 – User382