【问题标题】:Initial View Controller from everywhere来自各处的初始视图控制器
【发布时间】:2018-08-27 05:40:49
【问题描述】:

我有一个带有导航视图控制器的应用程序作为初始视图控制器。加载初始视图控制器后,我设置了一个通知侦听器。通知可以在应用程序的任何地方发布。我有一些推送的 vc,也有模态的介绍。如果通知被触发,我的目标是返回到初始 vc 并从那里显示一个模态视图控制器,但我不知道该怎么做。我需要在 MainViewController 之外执行此操作吗?

【问题讨论】:

  • 在 AppDelegate 中保留 NavigationController 的引用,并在 AppDelegate 中观察通知。接到电话时,转到navigationController的rootController
  • 所以你的应用只有一个导航控制器,当通知发布时,你希望用户返回到根视图控制器,无论他们在哪里,然后模态地呈现一个视图控制器在根的顶部?

标签: ios swift swift4


【解决方案1】:

Answer 假设 rootViewController 是UINavigationController,正如 OP 在他的问题中指定的那样

你可以实现你想要的使用

(UIApplication.shared.keyWindow?.rootViewController as! UINavigationController).dismiss(animated: true) {
    (UIApplication.shared.keyWindow?.rootViewController as! UINavigationController).popToRootViewController(animated: true)
}

发生的事情很简单。知道您的初始 viewCONtroller 始终为UINavigationController,首先检查您是否在 rootView 控制器上显示了任何内容,如果是则将其关闭,并在完成块中弹出到初始 viewController 的 rootViewController。

希望对你有帮助

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-09-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多