从 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 也不会崩溃。它会安全地打开它。
我需要在 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 也不会崩溃。它会安全地打开它。