繁体   English   中英

如何从多个导航控制器中选择一个视图控制器,完成后如何快速返回显示的任何一个视图控制器

[英]How to segue to one view controller from multiple navigation controllers and when done go back to whichever view controller presented it swift

在此处输入图片说明

因此,我有两个导航控制器层次结构,它们都导致一个视图控制器。 我传递了一个视图控制器数据,基于该数据以推送方式呈现给它。 如何关闭最终视图控制器并返回显示它的导航堆栈? 我不需要传递任何信息,但是当我尝试进行结束搜索时,我收到一条错误消息,指出“该类与键doneButtonTapped的键值编码不兼容”,我尝试了取消WinWin和popVC segue。

我认为问题可能是您不能有两个单独的导航堆栈通向一个视图控制器,因为该视图控制器不知道它属于哪个堆栈。 我尝试研究,但是只能找到如何一次消除多个模式视图的方法,与解散当时由VC提出的一个VC无关。

谢谢

您只需要调用popViewController即可popViewController viewcontroller。 它会自动跟随由导航控制器A或B创建的导航堆栈。

如果要弹出到第一个viewcontroler,则可以调用popToRootViewController

希望这会有所帮助:)

只需为导航控制器设置情节提要ID,一旦到达最终视图控制器即可。 只需使用:

self.performSegueWithIdentifier(identifier: String, sender: AnyObject?)

使用prepareForSegue转到所需的NavigationViewController

设置一个Bool值并将其从“导航”视图控制器传递出去,同时遍历到最后一个视图控制器。 例如,从Nav A转到时传递true,从Nav B转到时传递false。一旦到达最终的ViewController,请使用以下布尔值:

if boolValue == true {
self.performSegueWithIdentifier(identifier: "identifierforNavA", sender: AnyObject?)
}
else {
self.performSegueWithIdentifier(identifier: "identifierforNavB", sender: AnyObject?)
}

不要忘了实现prepareForSegue以便performSegueWihIdentifier起作用

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM