iOS 13 Окно приложения неправильно повернуто на iPhone, если приложение запущено с iPhone в горизонтальной ориентации - PullRequest
1 голос
/ 08 апреля 2020

Я нахожусь в процессе обновления приложения iOS 10 лет (Objective- C) для iOS 13 (Xcode 11.4) и обнаружил следующую странную проблему: когда приложение запускается во время iPhone (Симулятор, 13.4) в горизонтальной ориентации, окно приложения имеет правильные размеры, но странным образом повернуто на 90 градусов вправо. Этого не происходит на iPad (Simulator, 13.4) или iPhone Simulator 12.x, где приложение запускается правильно. Прилагается скриншот, чтобы лучше проиллюстрировать проблему. Приложение использует XIB и программно созданные представления, без раскадровок. Начальное представление создается в application didFinishLaunchingWithOptions обычным способом:

[self.window addSubview:tabBarController.view];
self.window.rootViewController = tabBarController;
[self.window makeKeyAndVisible];

. tabBarController загружается из XIB.

Экран запуска (который является единственной раскадровкой в ​​приложении) отображается правильно.

Есть идеи?

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

1 Ответ

1 голос
/ 08 апреля 2020

Оказывается, что удаление строки

[self.window addSubview:tabBarController.view];

в application didFinishLaunchingWithOptions добилось цели. Очевидно, эта строка была нужна однажды, но теперь вызывает havo c.

Удаление строки также исправило сообщение Unbalanced calls to begin/end appearance transitions for <UITabBarController: ...>, которое я видел в выходных данных журнала.

См. Также этот ответ на форумах разработчиков Apple, который привел меня на правильный путь.

...