如何导航回更正以前的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)
}
请帮忙。
谢谢
答案
- 在你的
UINavigationController
中添加storyBoard
- 添加新的
UIViewController
[这是VC_HOME]并将其与UINavigationController
链接为root View Controller
(ctrl + drag) - 给它一个ID(右侧实用程序视图 - > Identity Inspector - > StoryBoard ID - >将其命名为“
myHome
”) - 添加3个按钮[
go to vc1
,go to vc2
,go to vc3
],当然为每个按钮添加@IBAction
- 添加3个不同的
UIViewController
为vc1,vc2,vc3和类似步骤3给他们IDmyVc1
,myVc2
,myVc3
现在为@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的主要内容,如果未能解决你的问题,请参考以下文章
我在从导航堆栈中删除 ViewController 时遇到问题?
将 UIImage 从 photopicker 传递到以前的 ViewController