如果应用程序以 iPhone 横向启动,iOS 13 应用程序窗口会在 iPhone 上错误地旋转

标签 ios iphone ios13 screen-orientation

我正在为 iOS 13(Xcode 11.4)升级一个 10 年前的 iOS 应用程序(Objective-C),并注意到以下奇怪的问题:当 iPhone(模拟器,13.4)处于横向时启动应用程序,应用程序的窗口具有正确的尺寸,但奇怪地向右旋转了 90 度。这不会在应用程序正确启动的 iPad(模拟器,13.4)或 iPhone 模拟器 12.x 上发生。
附上截图以更好地说明问题。
该应用程序使用 XIB 和以编程方式创建的 View ,没有 Storyboard 。
初始 View 创建于 application didFinishLaunchingWithOptions以通常的方式:

[self.window addSubview:tabBarController.view];
self.window.rootViewController = tabBarController;
[self.window makeKeyAndVisible];
tabBarController从 XIB 加载。

启动屏幕(这是应用程序中唯一的 Storyboard)正确显示。

有任何想法吗?

Screenshot of app showing strange rotation bug when launched in landscape orientation

最佳答案

原来,删除线

[self.window addSubview:tabBarController.view];

application didFinishLaunchingWithOptions成功了。显然这条线曾经需要过,但现在造成了严重破坏。

删除该行也修复了 Unbalanced calls to begin/end appearance transitions for <UITabBarController: ...>我在日志输出中看到的消息。

另见 this answer在 Apple Developer Forums 中,这让我走上了正轨。

关于如果应用程序以 iPhone 横向启动,iOS 13 应用程序窗口会在 iPhone 上错误地旋转,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61101200/

相关文章:

ios - 在 iOS 中向用户显示之前修改通知数据

ios - 我需要一个提示 - 是否可以将消息推送到仅在某些特定区域(基于地理的通知)的 iPhone?

iphone - 2D 非 OpenGL 游戏 : ViewControllers

ios - 在 iMessage 应用程序的对话中存储变量

ios - 如何从充满搜索 Controller 结果的表格中进行 Segue

ios - Razer Nabu - 集成问题

iphone - 在iOS中隐藏UIButton的动画

ios - iOS 13 中弹出窗口的阴影消失了

ios - 单击单元格时如何根据排序移动单元格?

swiftui - Xcode 11——SwiftUI 的暗模式设置