为什么 UITabBarController 返回“..应该支持至少一个方向”信息?

发布于 2024-11-27 07:21:57 字数 386 浏览 2 评论 0原文

我对 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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

述情 2024-12-04 07:21:58

您可以使用 UIInterfaceOrientationIsLandscape() 和 UIInterfaceOrientationIsPortrait() 来处理您希望 UIViewController 支持的特定方向。

You can use UIInterfaceOrientationIsLandscape() and UIInterfaceOrientationIsPortrait() to handle which specific orientation you want the UIViewController to support.

我爱人 2024-12-04 07:21:57

如果返回 NO,则意味着您的视图控制器无法显示在 4 个方向中的任何一个上。

您应该考虑您希望它支持哪些方向,并使用它们为您提供的 orientation 参数来接受这些方向。

例如,如果我希望我的视图控制器支持纵向和横向,这将是我的实现(这可以减少为一条线,但为了清楚起见,我将其扩展):

-(BOOL)shouldAutorotateToInterfaceOrientation:(UIDeviceOrientation)orientation{
  if(orientation == UIDeviceOrientationPortrait) return YES;
  if(orientation == UIDeviceOrientationLandscapeRight) return YES;
  return NO;
}

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):

-(BOOL)shouldAutorotateToInterfaceOrientation:(UIDeviceOrientation)orientation{
  if(orientation == UIDeviceOrientationPortrait) return YES;
  if(orientation == UIDeviceOrientationLandscapeRight) return YES;
  return NO;
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文