如何在没有任何推送序列的情况下快速从另一个视图控制器访问方法?

Posted

技术标签:

【中文标题】如何在没有任何推送序列的情况下快速从另一个视图控制器访问方法?【英文标题】:How can I access a method from another View Controller in swift without any push segues? 【发布时间】:2015-11-10 15:28:32 【问题描述】:

所以我有两个视图控制器,Vc1 和 Vc2。我正在使用以下命令从 Vc1 导航到 Vc2:

 let vc2 = Vc2(nibName: "Vc2", bundle: nil)
 self.navigationController?.pushViewController(vc2, animated: true)

然后在 Vc2 中我这样做:

 self.navigationController?.popViewControllerAnimated(true) 

现在如何从 Vc2 访问 Vc1 中定义的方法? 注意:我没有使用故事板,而是使用 Xib 文件。

【问题讨论】:

您到底想做什么?为什么要访问另一个视图控制器中的方法?我怀疑有更好的方法来做到这一点,但我们需要知道你的目标是什么。 你可以试试NSNotificationCenter,***.com/questions/33299670/… 【参考方案1】:

您必须在 Vc2 中保留 Vc1 的引用,然后执行以下操作:

 let vc2 = Vc2(nibName: "Vc2", bundle: nil)
 vc2.vc1 = self
 self.navigationController?.pushViewController(vc2, animated: true)

然后就可以在 Vc2 中调用 self.vc1 上的 Vc1 方法了

【讨论】:

以上是关于如何在没有任何推送序列的情况下快速从另一个视图控制器访问方法?的主要内容,如果未能解决你的问题,请参考以下文章

如何在一种情况下推送视图控制器,但在另一种情况下以模态方式呈现它?

如何一次推送一些带有 segue 的视图控制器

如何快速从另一个视图控制器重新加载表格视图

我可以从另一个模态视图控制器中推送模态视图控制器吗?

如何在没有动画的情况下弹出到视图控制器

如何从objective-c类推送一个快速视图控制器并将数据传回并继续objective-c类中的下一个过程