如何导航回更正以前的viewController

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何导航回更正以前的viewController相关的知识,希望对你有一定的参考价值。

嗨,我有以下情况:

            |---> 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)
}

请帮忙。

谢谢

答案
  1. 在你的UINavigationController中添加storyBoard
  2. 添加新的UIViewController [这是VC_HOME]并将其与UINavigationController链接为root View Controller(ctrl + drag)
  3. 给它一个ID(右侧实用程序视图 - > Identity Inspector - > StoryBoard ID - >将其命名为“myHome”)
  4. 添加3个按钮[go to vc1go to vc2go to vc3],当然为每个按钮添加@IBAction
  5. 添加3个不同的UIViewController为vc1,vc2,vc3和类似步骤3给他们ID myVc1myVc2myVc3

现在为@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)
另一答案

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

dismiss(animated: true, completion: nil)

以上是关于如何导航回更正以前的viewController的主要内容,如果未能解决你的问题,请参考以下文章

如何导航回以前加载的 xib 文件?

从导航控制器移回视图控制器?

我在从导航堆栈中删除 ViewController 时遇到问题?

将 UIImage 从 photopicker 传递到以前的 ViewController

如何有返回按钮才能返回到第一个 ViewController?

目标 C:如何从当前 ViewController 后面的 ViewController 获取导航控制器