ios - 无法访问通过委托(delegate)传递的数据

标签 ios swift delegates

我试图理解委托(delegate),但我不明白为什么它说我使用了无法解析的标识符“数据”。

//This is my sendingVC

import UIKit

protocol TextFieldDelegate {
func userEnteredText(text: String)
}

class ViewController: UIViewController {


@IBOutlet weak var textField: UITextField!

var delegate: TextFieldDelegate? = nil

override func viewDidLoad() {
    super.viewDidLoad()
}


@IBAction func sendButton(_ sender: AnyObject) {
    if delegate != nil {
        if textField.text != nil {
            let data = textField.text
            delegate?.userEnteredText(text: data!)
        }
    }
}

}

问题在于下面这段代码对于我的接收VC,我无法访问应由委托(delegate)传递的数据变量。

//This is my receivingVC
import UIKit

class SecondViewController: UIViewController, TextFieldDelegate {

@IBOutlet weak var label: UILabel!
override func viewDidLoad() {
    super.viewDidLoad()

}

func userEnteredText(text: String) {
    label.text = data // Use of unresolved identifier 'data'
}

override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
    if segue.identifier == "sendSegue" {
        let destVC: ViewController = segue.destination as! ViewController
        destVC.delegate = self
    }
}

}

最佳答案

更新您的代码:

func userEnteredText(text: String) {
    label.text = text
}

关于ios - 无法访问通过委托(delegate)传递的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46982128/

相关文章:

ios - ReactiveCocoa-映射方法错误

ios - 点击 super View 中嵌入的自定义 UIView 中未收到的手势识别器

ios - FIrebase 3 查询以返回与子键/值匹配的值

wcf - 如何将每个 WCF 调用包装在 try-catch block 中

ios - 使用 swift 3 在 VLCPlayer 中播放电影时完全旋转横向 View

ios - Swift + Core Data 只保存最后一个循环。

ios - 当我打开 .swift/.xib 文件时 XCode 8.1 崩溃

xcode - 找不到 SwiftXCTest

c# - 返回值未显示

iOS Swift : Closures (Callbacks) versus Delegates, 什么时候使用哪个?