从 AppDelegate 访问 UINavigationController

Access UINavigationController From AppDelegate

我需要在 AppDelegate

中访问 UINavigationController

这是我试过的

func applicationDidBecomeActive(_ application: UIApplication) {
    let syncManager = SyncManager()
    let navigationController: UINavigationController = UIStoryboard(
        name: "Main",
        bundle: nil
    ).instantiateViewController(withIdentifier: "MainNavigationController") as! UINavigationController
    syncManager.setNavigationController(navigationController)
    syncManager.sync()
}

这似乎不起作用。

如何从 AppDelegate 访问 UINavigationController

谢谢。

更新

我正在使用此 library 在应用程序处于活动状态时在应用程序中显示通知。这个库需要一个 navigationController 实例来显示通知。

当我在 AppDelegate 中使用此代码时,不会显示通知,但当我在 ViewController 中使用时,会显示通知。

试试这个:

let navigationController = application.windows[0].rootViewController as! UINavigationController

你可以试试这个

let navigationController = application.windows.first?.rootViewController as? UINavigationController

即使您的 rootViewController 是 TabBarController 也不会崩溃。它会安全地打开它。