【问题标题】:Changing StatusBar orientation has no effect更改状态栏方向无效
【发布时间】:2012-11-30 19:30:01
【问题描述】:

我有两个 ViewControllers - 主要的一个是纵向的 - 第二个,它显示一个加载了 YouTube 视频的 WebView 可以旋转到任何方向。当它在 Landscape 中被关闭时,返回到主 ViewController,状态栏留在 Landscape 模式。我知道 YouTube 视图何时被关闭并在被调用方法中的代码上放置了以下行:

UIApplication.SharedApplication.SetStatusBarOrientation(UIInterfaceOrientation.Portrait,true);

但它对状态栏没有影响。还有其他地方可以设置方向吗?其他想法?

谢谢, 瑞克

【问题讨论】:

  • 旋转设备后这个问题是否得到解决?我怀疑这可能是由于您没有在所有控制器上实现正确的定向方法——我通常为整个应用程序创建一个“基础”控制器来解决这些问题。
  • 否 - 旋转设备并不能解决问题。是的,我有一个主控制器和一个用于查看 YouTube 内容的控制器 - 仅此而已。
  • 我以前可能见过这样疯狂的事情。您是否尝试在 YouTube 内容关闭后手动调用 WillRotateDidRotate
  • 不知道在哪里尝试这个电话。在主控制器中似乎没有效果。
  • 你能把一个简单的项目放在某个地方复制它吗?我认为需要一些代码来帮助解决这个问题。

标签: xamarin.ios orientation statusbar


【解决方案1】:

通过将以下内容添加到 AppDelegate 来解决问题

public override UIInterfaceOrientationMask GetSupportedInterfaceOrientations (UIApplication application, UIWindow forWindow)
{
     return UIInterfaceOrientationMask.AllButUpsideDown;
}

然后这段代码实际上做了它应该做的:

UIApplication.SharedApplication.SetStatusBarOrientation(UIInterfaceOrientation.Portrait,true);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-12-13
    • 1970-01-01
    • 2016-01-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多