ios - 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
解决方案
推荐阅读
- javascript - 在 VueJS 中定义一个引用变量
- python - 在 Scapy 数据包中包含命令的输出
- powerbi - 我在 Power Bi Report Builder 中找不到登录选项
- excel - 关于使用 VBA 在 Excel 上禁用按钮
- python - Python yield 语句每次都返回相同的值
- node.js - 尝试异步调用 AWS lambda。什么都没发生
- node.js - 通过 dropbox-v2-api nodejs 将大文件上传到 Dropbox
- git - 不能挤压合并;
从未添加 - json - Json 模式 - 需要基于同一嵌套对象中的字段值的字段
- javascript - D3 层次结构默认折叠到第一级