想锁定app的方向

时间:2013-11-19 18:44:06

标签: ios rotation locking device-orientation

如果服务器发送'Lock'消息,我想锁定整个应用程序的Orientation。当服务器发送'解锁'方向时,我希望应用程序自动旋转。我在NSUSerDefaults中存储了值'Lock'。在rootViewcontroller中,它正常工作,如果Lock为true,shouldAutoRotate方法返回NO,并且视图不旋转。但在其他视图控制器中,即使锁定为true,shouldAutoRotate返回No,但View仍在旋转。

我已经为自动旋转创建了一个UINavigationController类,以便从每个类调用shouldAutorotate方法。

- (BOOL)shouldAutorotate
{
    NSString *AUTO_ROT =[[NSUserDefaults standardUserDefaults]valueForKey:@"AUTOROT"];

    if([AUTO_ROT caseInsensitiveCompare:@"true"] == NSOrderedSame)
    {
        return YES;
    }
    else{
        return NO;
    }
}

请帮助我。

1 个答案:

答案 0 :(得分:0)

您确定旋转视图控制器也是UINavigationController的子视图控制器(即您是否将其推送到UINagivationController上)?

如果你使用presentViewController呈现它:animated:completion:例如视图控制器本身也需要实现shouldAutorotate。

另外,请注意overriding via category。一个更好的方法是子类UINavigationController并覆盖子类中的方法。