首页 > 解决方案 > iOS Swift 不通过委托传回数据

问题描述

我从一个视图控制器到另一个视图控制器,如下所示:

    switch popIndex {

    case 301:
        let destVC = segue.destination as! IDPopoverViewController
        destVC.popIndex = popIndex
        destVC.titleString = "Issuer or Category"
...

在第二个 VC 中,用户输入数据(String)。我通过委托将此数据传递回原始 VC:

        case 301:
            newIssuerDelegate?.appendName(name: dataToReturn)
            print("In delegate call, dataToReturn = \(dataToReturn)")
...

委托功能:

func appendName(name:String) {
    newIssuer.name = name
    issuerNameLabel.text = name
    print("In appendName, name = \(name)")
    saveIt()
}

议定书

protocol NewIssuerProtocol {
    func appendName(name:String)
...

问题:

数据似乎永远不会到达委托函数。数据没有出现在 上issuerNameLabel,也没有出现在print语句中。不会崩溃,只是返回到原始 VC 并空闲,等待另一个命令。

我在委托调用(如预期的那样停止)和委托函数中放置了断点。print断点和语句都没有确认数据的接收。我应该提到,同一协议中的 (6) 个其他委托函数似乎也没有接收或显示相关数据。但是,整个应用程序中的几个类似构造的委托方案运行良好。

我的请求

有人能发现我在这个问题上做错了什么吗?

非常感谢所有帮助!

使固定

正如@vadian 在下面慷慨指出的那样,我在准备 segue 时忽略了设置委托!

    case 301:
        let destVC = segue.destination as! IDPopoverViewController
        destVC.popIndex = popIndex
        destVC.titleString = "Issuer or Category"
        destVC.newIssuerDelegate = self

标签: iosswiftseguedelegation

解决方案


推荐阅读