【问题标题】:How to pass data to a previous ViewController in Swift (Cocoa Application)如何在 Swift(Cocoa 应用程序)中将数据传递给以前的 ViewController
【发布时间】:2016-11-03 16:47:28
【问题描述】:

将数据传递给下一个 viewController 简单明了,可以使用prepareSegue 方法完成。但是,我不明白如何在 Swift(Cocoa Application) 中将数据传递给以前的 viewController

我在 viewControllerB 中有一个文本字段,当您在其中输入内容并按下按钮时,我想将其传递给 viewControllerA 中的标签,而不是在新窗口中打开 viewControllerA,我只想要viewController B 将被关闭,传递的数据将在 viewControllerA 上可见。

仅此而已。在过去的 48 小时里,我一直坚持下去。对此的任何帮助将不胜感激。

谢谢!

【问题讨论】:

  • 你尝试过协议/委托吗?
  • 我们也可以使用 seque unwind

标签: swift macos cocoa viewcontroller


【解决方案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是因为你说你在那里转发数据。
猜你喜欢
  • 2020-06-14
  • 2021-11-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-03-21
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多