首页 文章

如何导航回更正以前的viewController

提问于
浏览
1

嗨,我有以下情况:

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

VC1,VC2和VC3可以转到同一个ViewController(VCm)

如果从VC1启动并转到VCm,如何从VCm导航回正确的上一个VC,然后Vcm将返回到VC1 . 所以,VC2和VC3也一样 .

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

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

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

请帮忙 .

谢谢

2 回答

  • 0
    • storyBoard 中添加 UINavigationController

    • 添加新 UIViewController [这是VC_HOME]并将其与 UINavigationController 链接为 root View Controller (ctrl drag)

    • 给它一个ID(右侧实用程序视图 - > Identity Inspector - > StoryBoard ID - >将其命名为“ myHome ”)

    • 添加3按钮[ go to vc1go to vc2go to vc3 ],当然为每个按钮添加 @IBAction

    • 为vc1,vc2,vc3添加3个不同的 UIViewController ,并为步骤3添加ID为 myVc1myVc2myVc3

    现在为 @IBAction go to vc1 添加以下代码:

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

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

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

    for @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)

    • 如果你回到root [VC_Home]使用这个: navigationController?.popToRootViewController(animated: true)

  • 0

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

    dismiss(animated: true, completion: nil)
    

相关问题