Objective c iOS 6.0 UINavigationController中的设备定向
我在UITabbarcontroller中有一个UINavigationController。我只想在UINavigationController内旋转一个视图cotnroller 下面是我正在使用的代码片段Objective c iOS 6.0 UINavigationController中的设备定向,objective-c,ios6,autorotate,Objective C,Ios6,Autorotate,我在UITabbarcontroller中有一个UINavigationController。我只想在UINavigationController内旋转一个视图cotnroller 下面是我正在使用的代码片段 -(NSUInteger)supportedInterfaceOrientations { if (CURRENTDEVICE == IPHONE) return [self.navigationController supportedInterfaceOrientations]
-(NSUInteger)supportedInterfaceOrientations
{
if (CURRENTDEVICE == IPHONE)
return [self.navigationController supportedInterfaceOrientations] | UIInterfaceOrientationMaskAllButUpsideDown;
else
return UIInterfaceOrientationMaskAll;
}
-(BOOL)shouldAutorotate {
return YES;
}
我在UINavigationController上也有一个类别:
#import "UINavigationController+autorotate.h"
@implementation UINavigationController (autorotate)
- (NSUInteger)supportedInterfaceOrientations
{
return UIInterfaceOrientationMaskAllButUpsideDown;
}
@end
我不知道如何实现它。您可以使用cgrect硬编码它。这里是另一个问题的链接,可能对您有所帮助。这里有一个很好的例子,为旋转对两个不同的视图进行硬编码,但我个人并不推荐。无论如何,我想这可能会给你指明正确的方向 这个问题中有一组代码可能会让你开始。在右舷也有一个选项(如果您使用的是故事板),可以在IB中设置旋转,这要容易得多 希望这有帮助
adrian在
支持的界面方向
实现中的您的类别中,您可以检查topViewController
。您可以使用类的种类:
方法来确定它是哪个类。。。然后返回与默认导航不同的方向
您还可以子类化UINavigationController
,并以相同的方式执行此检查。在iOS 6之前,不建议对导航控制器进行子类化,文档中仍然说明了这一点,但苹果工程师告诉我,使用新的旋转逻辑,您可以对UINavigationController
进行子类化