如何在 Swift(Cocoa 应用程序)中将数据传递给以前的 ViewController
Posted
技术标签:
【中文标题】如何在 Swift(Cocoa 应用程序)中将数据传递给以前的 ViewController【英文标题】:How to pass data to a previous ViewController in Swift (Cocoa Application) 【发布时间】:2016-11-03 16:47:28 【问题描述】:将数据传递给下一个 viewController 简单明了,可以使用prepareSegue
方法完成。但是,我不明白如何在 Swift(Cocoa Application) 中将数据传递给以前的 viewController
我在 viewControllerB
中有一个文本字段,当您在其中输入内容并按下按钮时,我想将其传递给 viewControllerA
中的标签,而不是在新窗口中打开 viewControllerA,我只想要viewController B
将被关闭,传递的数据将在 viewControllerA
上可见。
仅此而已。在过去的 48 小时里,我一直坚持下去。对此的任何帮助将不胜感激。
谢谢!
【问题讨论】:
你尝试过协议/委托吗? 我们也可以使用 seque unwind 【参考方案1】:您可以使用委托来执行此操作。示例:
protocol NextProtocol: class
func sendBack(value: Int)
class Previous: NextProtocol
func sendBack(value: Int)
print("I have received \(value)")
func prepareSegue(...)
// get next instance
var next: Next
next.delegate = self
class Next
weak var delegate: NextProtocol?
func someMethod()
delegate?.sendBack(5)
【讨论】:
只是一个困惑,为什么在 firstViewController 类中使用 'prepareSegue' 函数? @O.Naeem 与您转发数据相同,您转发您希望接收数据的人。我提到prepareSegue是因为你说你在那里转发数据。以上是关于如何在 Swift(Cocoa 应用程序)中将数据传递给以前的 ViewController的主要内容,如果未能解决你的问题,请参考以下文章
使用 PDFOutline 在 Swift/Cocoa 中将 TOC 添加到 PDFDocument
自定义类 Unarchive 在 Cocoa Swift 中为零