Все другие ответы звучат хорошими, я хотел бы покрыть свой случай, где я должен был сделать анимированный LaunchScreen, затем после 3 - 4 секунд анимации, следующая задача состояла в том, чтобы переместиться в главный экран. Я попробовал переходы, но это создало проблему для целевого представления. Таким образом в конце я получил доступ к свойству Window AppDelegates, и я присвоил новый экран NavigationController ему,
let storyboard = UIStoryboard(name: "Main", bundle: nil)
let appDelegate = UIApplication.shared.delegate as! AppDelegate
let homeVC = storyboard.instantiateViewController(withIdentifier: "HomePageViewController") as! HomePageViewController
//Below's navigationController is useful if u want NavigationController in the destination View
let navigationController = UINavigationController(rootViewController: homeVC)
appDelegate.window!.rootViewController = navigationController
, Если упаковывают, Вы не хотите navigationController в целевом представлении, тогда просто присваиваются как,
let storyboard = UIStoryboard(name: "Main", bundle: nil)
let appDelegate = UIApplication.shared.delegate as! AppDelegate
let homeVC = storyboard.instantiateViewController(withIdentifier: "HomePageViewController") as! HomePageViewController
appDelegate.window!.rootViewController = homeVC