通过协议将值:ViewController传递到swift中的.xib文件

通过协议将值:ViewController传递到swift中的.xib文件,swift,protocols,xib,viewcontroller,Swift,Protocols,Xib,Viewcontroller,所以我有一个类“CalendarioViewController”,它有一个协议“DateSelectedDelegate” 协议: protocol DateSelectedDelegate { func dateSelected (date: String)} 我声明一个变量协议类型: var dateDelegate:DateSelectedDelegate?=无 在我的类“CalendarioViewController”中,我有一个@iAction按钮: @IBAction func

所以我有一个类“CalendarioViewController”,它有一个协议“DateSelectedDelegate”

协议:

protocol DateSelectedDelegate {
func dateSelected (date: String)}
我声明一个变量协议类型:

var dateDelegate:DateSelectedDelegate?=无

在我的类“CalendarioViewController”中,我有一个@iAction按钮:

@IBAction func gotoHotelVC(_ sender: Any) {

    if dateDelegate != nil {

        if fechaSelected.text != nil {

            let data = fechaSelected.text
            dateDelegate?.dateSelected(date: data!)
        }   
    } 
}
在我的第二个VC或“FechasViewController”中,我使用协议define-early,使用两个按钮调用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!
使用协议:

扩展名FechasViewController:DateSelectedDelegate{ func dateSelected(日期:字符串){ fechaArriboLabel.text=日期 打印(日期) 打印(fechaArriboLabel.text!) } }

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

这是我的xib:

这是我的故事板:

把我的全部代码放在这里:


请…救命

您的
FechasViewController
CustomViewHandler
的子类。您的
CustomViewHandler
UIView
子类。那么您的
UIViewController
的子类在哪里呢?如果您的print语句正常工作,那么IBOutlet可能有问题。@Jignesh Agola:除了这个问题之外,还有什么问题呢?与班级有直接联系。如果我输入这行代码:fechaArriboLabel.text=“HELLO”在我按下按钮时有效。但是当我将CalendarViewController返回到ViewController或xib文件时..他将处于其原始状态,这才是真正的问题guess@nayem:我的子类UIViewController不在此参与。他正在加载xib文件。我想这不是问题…在实现的
扩展名FechasViewController:DateSelectedDelegate{…}
func dateSelected(date:String){…}
中放置一个断点,然后查看执行是否停止。