使用协议传递值:ViewController到swift

时间:2017-07-04 18:19:25

标签: swift protocols xib viewcontroller

所以我有一个“CalendarioViewController”类,其中包含一个协议“DateSelectedDelegate”。

协议:

protocol DateSelectedDelegate {
func dateSelected (date: String)}

我声明了一个变量协议类型:

var dateDelegate: DateSelectedDelegate? = nil

进入我的班级“CalendarioViewController”我有一个@IBAction按钮:

@IBAction func gotoHotelVC(_ sender: Any) {

    if dateDelegate != nil {

        if fechaSelected.text != nil {

            let data = fechaSelected.text
            dateDelegate?.dateSelected(date: data!)
        }   
    } 
}

在我的secondVC或“FechasViewController”中,我使用早期的协议定义,我用两个按钮调用CalendarioViewController。 FechasViewController是一个xib文件:

@IBAction func fechaArribo(_ sender: Any) {

    let storyboard = UIStoryboard(name: "Main", bundle: nil)
    let vc:CalendarioViewController = storyboard.instantiateViewController(withIdentifier: "calendario") as! CalendarioViewController
    vc.dateDelegate = self
    self.window!.rootViewController = vc

}

@IBAction func fechaSalida(_ sender: Any) {

    let storyboard = UIStoryboard(name: "Main", bundle: nil)
    let vc:CalendarioViewController = storyboard.instantiateViewController(withIdentifier: "calendario") as! CalendarioViewController
    vc.dateDelegate = self
    self.window!.rootViewController = vc

}

我的@IBOutlet:

 @IBOutlet weak var fechaArriboLabel: UILabel!

使用协议:

extension FechasViewController: DateSelectedDelegate { func dateSelected(date: String) { fechaArriboLabel.text = date print(date) print(fechaArriboLabel.text!) } }

  

行打印(日期)或打印(fechaArriboLabel.text!)工作正常......但我的xib标签不会改变任何内容:

这里是我的xib:enter image description here

这是我的故事板:

enter image description here

把我的整个代码放在这里: enter image description here

enter image description here

enter image description here

enter image description here

请...帮助!

0 个答案:

没有答案