如何导航回更正以前的viewController

时间:2017-12-21 11:50:03

标签: swift3 uiview uiviewcontroller

您好我有以下情况:

            |---> VC1----->|
  VC_Home ->|---> VC2----->|------> VCm
            |---> VC3----->|

VC1,VC2和VC3可以转到相同的ViewController(VCm)

如何从VCm导航回正确的Previous VC 如果我从VC1开始并转到VCm,则Vcm将返回VC1。 所以,VC2和VC3也一样。

所有VC1,VC2,VC3都不要嵌入NavigationController。

这能够识别哪一页是前一页吗?

@IBAction func goBack(_ sender: Any){
 navigationController?.popViewController(animated: true)
}

请帮忙。

由于

2 个答案:

答案 0 :(得分:0)

  1. UINavigationController
  2. 中添加storyBoard
  3. 添加新UIViewController [这是VC_HOME],并将其与UINavigationController关联为root View Controller(按住Ctrl +拖动)
  4. 给它一个ID(右侧实用程序视图 - > Identity Inspector - > StoryBoard ID - >将其命名为" myHome")
  5. 添加3个按钮[go to vc1go to vc2go to vc3],当然为每个按钮添加@IBAction
  6. 为vc1,vc2,vc3添加3个不同的UIViewController,并为步骤3添加ID myVc1myVc2myVc3
  7. 现在为@IBAction go to vc1添加以下代码:

        let view = storyboard!.instantiateViewController(withIdentifier: "myVc1")     
    navigationController?.pushViewController(view, animated: true)
    

    @IBAction go to vc2添加以下代码:

        let view = storyboard!.instantiateViewController(withIdentifier: "myVc2")     
    navigationController?.pushViewController(view, animated: true)
    

    @IBAction go to vc3添加以下代码:

        let view = storyboard!.instantiateViewController(withIdentifier: "myVc3")     
    navigationController?.pushViewController(view, animated: true)
    

    现在,对于每个视图添加按钮,转到VC_M,如上面的步骤

    • 返回上一个viewController [vc1,vc2,vc3]使用此代码: navigationController?.popViewController(animated: true)
    • 如果你回到根[VC_Home],请使用:navigationController?.popToRootViewController(animated: true)

答案 1 :(得分:0)

只是dismiss你的最终视图控制器。在最终视图控制器中为您添加以下操作。

dismiss(animated: true, completion: nil)