swift3如何显示导航viewcontroller

时间:2017-05-01 14:26:20

标签: ios swift3 widget viewcontroller appdelegate

我想从通知小部件中打开特定视图。 通常其他答案是创建新视图.. (let viewcontroller = ... ) 所以如果你继续打电话,继续使用记忆..

所以,我想打开已经在我的应用程序中打开的viewA,然后转到viewB。

我的应用程序结构基本上是应用程序启动时的viewA。

我认为不是创建新的viewA,而是使用现有viewA中的navigation.push移动到viewB。

检查特定页面是否已存在,如何在顶部显示该页面以及如何使用navigation.push的方法是有效的。

现在我使用此代码从Appdelegate

打开viewA
let MainView: Main_View_List_ = mainStoryboard.instantiateViewController(withIdentifier: "Main_List_View") as! Main_View_List_
let nav = UINavigationontroller.init(rootViewController: MainView)
UIApplication.topViewController()?.present(nav, animated: true, completion: nil)

1 个答案:

答案 0 :(得分:0)

假设你有权访问导航控制器,你会想要做这样的事情来回到viewA:

     for viewController in nav.viewControllers {
         if viewController is ViewAClass {
           viewController.pushViewBFlag = true
           nav.popToViewController(viewController, animated: true)
          return
     }
  }

回到viewA后,您可以检查pushViewBFlag并创建并推送viewB。

或者,由于您似乎将viewA设置为导航控制器的根目录,因此您可以执行:nav.popToRootViewControllerAnimated(true)以返回viewA。然后,您需要处理从viewA推送viewB。