gpt4 book ai didi

objective-c - 启动模态视图 Controller 来解决选项卡栏和导航 VC 的方向 "lock"?

转载 作者:行者123 更新时间:2023-11-28 22:43:50 27 4
gpt4 key购买 nike

我有一个 iPhone 应用程序,其 Root View Controller (VC) 为 UITabBarController(设置为纵向),带有多个选项卡,其中一个是简单的 UIViewController。在那个 UIViewController 中,只有一个按钮——“播放视频”,单击该按钮会打开视频的模态视图(并自动开始播放视频)。视频 View 是 UIViewController 中的 UIWebView。我一直在尝试让 Web View 的 VC 将方向更改为横向,但没有任何运气。

我环顾四周,了解到如果您有 Tab Bar 或 Nav Controller ,所有子 VC 将与父 VC 的方向相同 - 这是有道理的。这就是我制作 Web View 的 VC 模式的原因,希望这是解决方向问题的方法。

我的问题是:这是否准确 - 使用模式将不需要 web View VC 是纵向的并且可以响应 shouldAutorotateToInterfaceOrientation 方法(即使我还没有能够让它工作)?

顺便说一句,使用 iOS 6。

提前致谢。

最佳答案

显然在 ios6 及更高版本中,旋转的工作方式有所不同。所以你要做的是下面的

  1. 在您的 .plist 中支持所有 4 个方向。
  2. 子类化 UITabBarController(例如:CustomTabBarController)
  3. 在 CustomTabBarController 中放置以下代码行

    -(NSUInteger)supportedInterfaceOrientations
    {
    return UIInterfaceOrientationMaskPortrait;
    }


    - (UIInterfaceOrientation)preferredInterfaceOrientationForPresentation
    {
    return UIInterfaceOrientationPortrait;
    }
  4. 在您的应用委托(delegate)中或您初始化 UITabBarController 的任何地方,将这些实例替换为 CustomTabBarController 实例。

  5. 在你的模态 Controller 中放置这些行

    - (UIInterfaceOrientation)preferredInterfaceOrientationForPresentation
    {
    return UIInterfaceOrientationLandscapeLeft;
    }

    -(BOOL)shouldAutorotate{
    return NO;

    }

它应该一切正常。

显然,我发现的诀窍是,UITabBarController 不会听从您的指令。它将支持您在 .plist 中提到的所有方向。

因此您必须对其进行子类化。

我尝试了以上所有操作,效果很好。请告诉我,如果需要,我可以将代码发送给您。

关于objective-c - 启动模态视图 Controller 来解决选项卡栏和导航 VC 的方向 "lock"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13773335/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com