使用委托如何在类ios之间传递数据

时间:2019-02-12 10:15:11

标签: ios json swift

我已经从数据源文件中的JSON链接中解析了数据,如何使用该数据在主视图控制器中显示信息。

2 个答案:

答案 0 :(得分:1)

///在第二类中创建协议,从该协议将数据发送到上一个协议

protocol SampleDelegate: class {
  func getData(data: YourDataType)
}

//您的示例类/ ViewController

class SampleViewController: UIViewController {
// MARK:- Delegate
weak var delegate: SampleDelegate?

//从您想发送数据的地方

 delegate?.getData(data: Data)
}

//主类/ ViewController

let detailViewController = self.storyboard?.instantiateViewController(withIdentifier: "SampleViewController") as! SampleViewController
detailViewController.delegate = self
    self.navigationController?.pushViewController(detailViewController, animated: true)

func getData(data: YourDataType){
     //This function get called when you call this method from Smapleview controller
}

答案 1 :(得分:1)

  

我假设您想将数据从VCB传递到VCA

实施委派

  

在VCB的顶部创建一个协议。

protocol VCBDelegate {
    func passingName(string: String)
}
  

现在在我们的VCB类中,我们需要声明一个委托变量。

var delegate: VCBDelegate?
  

然后在btnPassDataPressed函数内部,添加以下代码:

delegate?. passingName(string: "Sent from VCFinal")
  

采用我们的VCBDelegate协议。在VCA中,使代表自我参与   viewDidLoad

class VCA: UIViewController, VCFinalDelegate
  

继续并在VCA内部添加passingName函数。

func passingName(string: String) {
   print("Notified")
}