我的目标是在一个视图控制器上强制进行景观定向,而不是整个应用程序(确切地说:我想让我的相机视图控制器成为景观)
我遇到了一个问题,,而不是,能够通过Xamarin.iOS在iOS 10设备上强制使用。
我已经让在iOS 9或更低版本的上工作,方法是在视图控制器中覆盖以下方法,这些方法应该仅在视图控制器中。但是,在iOS 10上似乎没有调用这些方法。
public override bool ShouldAutorotate()
{
return true;
}
public override UIInterfaceOrientation PreferredInterfaceOrientationForPresentation()
{
return UIInterfaceOrientation.LandscapeLeft;
}
public override UIInterfaceOrientationMask GetSupportedInterfaceOrientations()
{
return UIInterfaceOrientationMask.Landscape;
}我还测试了从ViewDidLoad调用这个方法(我不再使用这一行了,也无法判断它是否有任何效果)
//AppDelegate
public void ChangeOri()
{
UIDevice.CurrentDevice.SetValueForKey(new NSNumber((int)UIInterfaceOrientation.LandscapeLeft), new NSString("orientation"));
}对解决办法有什么建议吗?
发布于 2017-05-04 07:23:57
我终于找到了一个答案,它与iOS 10本身无关。
我在iPad设备上遇到了问题。iPads与iOS9或更高版本已经收到了一个新的功能:“多任务处理”。请参考这线程了解更多信息。
关键是,当您的应用程序设置为多任务处理时,您就不能再从代码中改变方向了。您必须为整个应用程序启用全屏模式,以便调用我在上面的问题中发布的代码行。
设置在您的plist: UIRequiresFullScreen真这样做。
https://stackoverflow.com/questions/43450169
复制相似问题