如果服务器发送'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;
}
}
请帮助我。
答案 0 :(得分:0)
您确定旋转视图控制器也是UINavigationController的子视图控制器(即您是否将其推送到UINagivationController上)?
如果你使用presentViewController呈现它:animated:completion:例如视图控制器本身也需要实现shouldAutorotate。
另外,请注意overriding via category。一个更好的方法是子类UINavigationController并覆盖子类中的方法。