为什么 UITabBarController 返回“..应该支持至少一个方向”信息?
我对 UITabBarController 进行了子类化,以便覆盖 shouldAutorotateToInterfaceOrientation:
,以便在某些情况下可以支持横向模式。当我运行此命令时,当重写的方法返回NO
时,选项卡栏控制器会向我显示以下消息
视图控制器<...0x644f50>;对于所有界面方向,从 -shouldAutorotateToInterfaceOrientation: 返回 NO。它应该至少支持一种方向。
除了在 shouldAutorotateToInterfaceOrientation
中始终返回 YES
之外,有关如何获取消息的任何建议吗?
I subclassed UITabBarController in order to override shouldAutorotateToInterfaceOrientation:
so that I can support landscape mode in certain circumstances. When I run this, the tab bar controller gives me the following message when the overridden method returns NO
The view controller <...0x644f50> returned NO from -shouldAutorotateToInterfaceOrientation: for all interface orientations. It should support at least one orientation.
Any suggestions on how to get ride of the message other than return YES
all the time in shouldAutorotateToInterfaceOrientation
?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
您可以使用 UIInterfaceOrientationIsLandscape() 和 UIInterfaceOrientationIsPortrait() 来处理您希望 UIViewController 支持的特定方向。
You can use UIInterfaceOrientationIsLandscape() and UIInterfaceOrientationIsPortrait() to handle which specific orientation you want the UIViewController to support.
如果返回 NO,则意味着您的视图控制器无法显示在 4 个方向中的任何一个上。
您应该考虑您希望它支持哪些方向,并使用它们为您提供的
orientation
参数来接受这些方向。例如,如果我希望我的视图控制器支持纵向和横向,这将是我的实现(这可以减少为一条线,但为了清楚起见,我将其扩展):
If you return NO, it means that your view controller can't be displayed on any of the 4 orientations.
You should think which orientations you want it to support and use the
orientation
parameter they give you to accept those orientations.For example, if I wanted my view controller to support portrait and landscape right, this would be my implementation (This could be reduced to a line, but I'm expanding it for the sake of clarity):