1- Вы должны удалить оба из
DispatchQueue.global(qos: .background).async
DispatchQueue.main.async
, поскольку код по умолчанию находится в главном потоке
2- Код внутри
applicationWillEnterForeground
будет вызываться, например, когда вы нажимаете кнопку «Домой» и снова открываете приложение, и это не приложение закрывается, это приложение работает в фоновом режиме
3- Используйте UINavigationController
, чтобы вернуть VC для возврата к нему
let nav = ////
nav.viewControllers = [vc1,vc2]
appDelegate.window?.rootViewController = nav
, так что vc2 покажет, и с помощью back вы можете вернуться к vc1