ios - 升级到 MonoTouch 6 后自动旋转停止工作

标签 ios xamarin.ios uikit xamarin screen-rotation

我用 MonoTouch 5 做了一个项目。升级到 MonoTouch 6 后,我的 UIViewController 不再自动旋转。它们托管在 tabviewcontroller 内。我收到此警告:

ShouldAutorotateToInterfaceOrientation(MonoTouch.UIKit.UIInterfaceOrientation)' overrides obsolete member `MonoTouch.UIKit.UIViewController.ShouldAutorotateToInterfaceOrientation(MonoTouch.UIKit.UIInterfaceOrientation)'. Add the Obsolete attribute to ShouldAutorotateToInterfaceOrientation(MonoTouch.UIKit.UIInterfaceOrientation)' (CS0672) 

但是当我调试时该方法仍然被调用。新的 ShouldAutorotate 永远不会被调用。有任何想法吗?谢谢!

最佳答案

可能有几个原因。其中之一是您应该(如果还没有)设置 RootViewController在您的 AppDelegate 中(另一个链接 here )。 iOS6 之前不需要这样做。

另一个是开始使用新的 iOS6 API,而不保留早期 iOS 版本的回退。这与您的评论相符,即适用于 6.0,但不适用于 5.1

请注意,由于您仍然以 iOS 5.x 为目标,因此您可以安全地 ignore过时的警告。 iOS 6 引入了新的 API 来处理旋转,但它会自动回退到旧的 API 以保持与现有应用程序的兼容性。

这也意味着,如果您开始使用新的(仅限 iOS6)API,那么您需要自己处理旧的 API,否则轮换将无法在 iOS 5.x 上使用

老实说,我认为这是一个测试噩梦 - 你最好让 iOS 处理这个问题并保留单个代码路径来处理旋转。这就是为什么我强烈建议您继续使用旧版 API,直到您的部署目标最低版本变为 iOS 6.0。

关于ios - 升级到 MonoTouch 6 后自动旋转停止工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14524510/

相关文章:

ios - 以编程方式创建 .xls 文件

ios - iOS 中的 facebook SDK 错误

ios - 如何使用 PushNotification 插件在 Xamarin Forms for IOS 中实现推送通知

ios - SwiftUI ForEach 未更新 ObservableObject 类数组的以下更改

ios - 如何检查 userLocation 的权限

ios - 突出显示没有多个图像的 UIButton

ios - navigationBar 和 tableview 单元格之间的间距

xcode - 创建项目时选择 SwiftUI 和 UIKit 的功能已消失

xamarin.ios - mvvmcross TabBarController ViewModel Init() 未调用?

ios - Xamarin.iOS & XCode 8.3 : how to download provisioning profiles?