在iOS6的, shouldAutorotateToInterfaceOrientation
已被弃用。 我试图用supportedInterfaceOrientations
和shouldAutorotate
使应用正常工作的自动旋转,但是失败了。
这个视图控制器我不想旋转,但它不工作。
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
return (interfaceOrientation == UIInterfaceOrientationPortrait);
}
-(BOOL)shouldAutorotate
{
return NO;
}
-(NSUInteger)supportedInterfaceOrientations
{
return UIInterfaceOrientationMaskPortrait;
}
有任何想法吗? 感谢提前任何帮助!
弄清楚了。
1)子类的UINavigationController(层次结构的顶部视图-控制将采取定向的控制。)没有将其设置为self.window.rootViewController。
- (BOOL)shouldAutorotate
{
return self.topViewController.shouldAutorotate;
}
- (NSUInteger)supportedInterfaceOrientations
{
return self.topViewController.supportedInterfaceOrientations;
}
2)如果你不想视图控制器旋转
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
return (interfaceOrientation == UIInterfaceOrientationPortrait);
}
-(BOOL)shouldAutorotate
{
return NO;
}
-(NSUInteger)supportedInterfaceOrientations
{
return UIInterfaceOrientationMaskPortrait;
}
3)如果你希望它能够旋转
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
return (interfaceOrientation != UIInterfaceOrientationPortraitUpsideDown);
}
-(NSUInteger)supportedInterfaceOrientations
{
return UIInterfaceOrientationMaskAllButUpsideDown;
}
-(BOOL)shouldAutorotate
{
return YES;
}
顺便说一句,根据您的需要,另一个相关方法:
- (NSUInteger)application:(UIApplication *)application supportedInterfaceOrientationsForWindow:(UIWindow *)window
{
return UIInterfaceOrientationMaskPortrait;
}
如果您使用的是标签栏控制器,而不是导航控制器为你的根器,你需要同样继承的UITabBarController。
另外,语法会有所不同。 我成功地使用以下。 然后我用上述实施例与上视图控制器我想重写成功。 在我的情况,我想主屏幕不旋转,但我有一个常见问题与屏幕电影,我自然要启用横向视图。 非常完美! 只要注意语法变化self.modalViewController(你会得到一个编译器,如果你尝试使用语法导航控制器警告。)希望这有助于!
- (void)didReceiveMemoryWarning
{
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
- (BOOL)shouldAutorotate
{
return self.modalViewController.shouldAutorotate;
}
- (NSUInteger)supportedInterfaceOrientations
{
return self.modalViewController.supportedInterfaceOrientations;
}