我将UITabBarController子类化为覆盖shouldAutorotateToInterfaceOrientation:
,以便在某些情况下我可以支持横向模式。当我运行它时,标签栏控制器在被覆盖的方法返回NO
The view controller <...0x644f50> returned NO from -shouldAutorotateToInterfaceOrientation: for all interface orientations. It should support at least one orientation.
有关如何在YES
中一直返回shouldAutorotateToInterfaceOrientation
以外获取消息的任何建议吗?
答案 0 :(得分:13)
如果您返回NO,则表示您的视图控制器无法在4个方向中的任何一个上显示。
您应该考虑您希望它支持哪些方向,并使用它们为您提供的orientation
参数来接受这些方向。
例如,如果我希望我的视图控制器能够正确支持纵向和横向,这将是我的实现(这可以简化为一行,但为了清晰起见我正在扩展它):
-(BOOL)shouldAutorotateToInterfaceOrientation:(UIDeviceOrientation)orientation{
if(orientation == UIDeviceOrientationPortrait) return YES;
if(orientation == UIDeviceOrientationLandscapeRight) return YES;
return NO;
}
答案 1 :(得分:0)
您可以使用UIInterfaceOrientationIsLandscape()和UIInterfaceOrientationIsPortrait()来处理您希望UIViewController支持的特定方向。