为啥 UITabBarController 返回“..应该支持至少一个方向”消息?
Posted
技术标签:
【中文标题】为啥 UITabBarController 返回“..应该支持至少一个方向”消息?【英文标题】:Why is UITabBarController returning a "..should support at least one orientation" message?为什么 UITabBarController 返回“..应该支持至少一个方向”消息? 【发布时间】:2011-07-31 05:58:45 【问题描述】:我继承了 UITabBarController 以覆盖 shouldAutorotateToInterfaceOrientation:
以便在某些情况下支持横向模式。当我运行它时,标签栏控制器会在被覆盖的方法返回 NO
The view controller <...0x644f50> returned NO from -shouldAutorotateToInterfaceOrientation: for all interface orientations. It should support at least one orientation.
除了一直在shouldAutorotateToInterfaceOrientation
中返回YES
之外,关于如何获取消息的任何建议?
【问题讨论】:
【参考方案1】:如果返回 NO,则表示您的视图控制器无法显示在 4 个方向中的任何一个上。
您应该考虑您希望它支持哪些方向,并使用它们为您提供的orientation
参数来接受这些方向。
例如,如果我希望我的视图控制器正确支持纵向和横向,这将是我的实现(这可以简化为一条线,但为了清楚起见我将其扩展):
-(BOOL)shouldAutorotateToInterfaceOrientation:(UIDeviceOrientation)orientation
if(orientation == UIDeviceOrientationPortrait) return YES;
if(orientation == UIDeviceOrientationLandscapeRight) return YES;
return NO;
【讨论】:
【参考方案2】:您可以使用 UIInterfaceOrientationIsLandscape() 和 UIInterfaceOrientationIsPortrait() 来处理您希望 UIViewController 支持的特定方向。
【讨论】:
以上是关于为啥 UITabBarController 返回“..应该支持至少一个方向”消息?的主要内容,如果未能解决你的问题,请参考以下文章
为啥我第二次使用侧边菜单打不开? (MMDrawerController + UITabBarController)
为啥当我使用 presentModelViewController 时未在我的 UITabBArController 中调用 viewWillAppear?
为啥由 UITabBarController.viewDidLoad 中的代码添加的自定义按钮不响应选择器
从 UITabBarController 调用 SFSafariViewController 并在按下“完成”后返回