我的应用程序有视图控制器继承 shouldautorotateToInterfaceOrientation 。在其中,我决定每个视图的旋转。这工作正常。但在iOS6中,虽然我阅读了Apple提供的文档,但我无法理解。
我的应用程序将导航控制器作为根视图控制器。该导航控制器具有标签控制器。标签控制器有一些视图控制器。我希望第一个视图控制器(在标签控制器中)仅作为纵向模式查看,第二个视图控制器(在标签控制器中)同时查看纵向和横向模式。它在iOS5中正常工作。 但我不知道如何在iOS6中制作它。虽然我知道我应该继承 supportedInterfaceOrientations ,但是在轮换发生时它不起作用。令我惊讶的是,当一个视图显示时会调用它。 如何制作我想要的东西?
感谢您的阅读。
答案 0 :(得分:8)
以下链接可能会引导您朝着正确的方向前进:http://code.shabz.co/post/32051014482/ios-6-supportedorientations-with-uinavigationcontroller
基本上,您需要创建UINavigationController的子类,并让它听取其-supportedInterfaceOrientations
的{{1}}中的更改。您可以在博客文章中下载一个示例类,并说明要添加的代码。
答案 1 :(得分:0)
当您使用UINavigationController或UITabbarViewController时,应用程序始终在其 shouldAutorotate,supportedInterfaceOrientations 方法中执行他们所说的内容。
您可以为它们添加类别,以将这些方法重定向到它们当前显示的控制器。 像这样:
@implementation UINavigationController (Rotation_IOS6)
-(BOOL)shouldAutorotate
{
return [[self.viewControllers lastObject] shouldAutorotate];
}
-(NSUInteger)supportedInterfaceOrientations
{
return [[self.viewControllers lastObject] supportedInterfaceOrientations];
}
- (UIInterfaceOrientation)preferredInterfaceOrientationForPresentation
{
return [[self.viewControllers lastObject] preferredInterfaceOrientationForPresentation];
}
@end
类似于UITabbarViewController。
答案 2 :(得分:0)
在我看来,这是我发现的最好的解释:http://www.widemann.net/wp-fr/?p=662但它是法语。
可能有道理