viewDidLoad () вызывается после назначения window.rootViewController, когда голосовое управление включено в iOS 13, что приводит к сбою приложения - PullRequest
0 голосов
/ 26 сентября 2019

Я испытываю странное поведение моего приложения на iOS 13 .0 и 13.1 , когда Голосовое управление , что приводит к сбою.

viewDidLoad () myViewController вызывается сразу после window.rootViewController = myViewController , а не из main .

Это ведет себятак только при включенном голосовом управлении.Когда голосовое управление отключено, viewDidLoad вызывается из main, как оно должно вызываться.

Например:

Это приведет к вызову viewDidLoad () на iOS 13, если голосовое управление включено

let root = MyViewController.initialize()
window?.rootViewController = UINavigationController(rootViewController: root)

Это будет работать должным образом на iOS 13 с включенным голосовым управлением

let root = MyViewController.initialize()
let mainWindow = UIWindow()
mainWindow.rootViewController = UINavigationController(rootViewController: root)
window = mainWindow

root UIViewController определенно настроен перед присвоением rootViewController , но он также ведет себя так, как будто он не был (только при включенном голосовом управлении) - он имеет нулевые значения в необязательных свойствах, которые заполняются при вызове initialize () в моментчто viewDidLoad () был вызван, что приводит к падению приложения .

И что ж, у меня есть решение для этой проблемы, описанное выше, но меня это беспокоит, так как этоповедение выглядит для меня как ошибка iOS 13.

Если кто-то что-то знает об этом, я хотел бы обсудить это

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...