我用 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/