swift - 使用委托将数据从初始视图控制器传递到第二个视图控制器 - Swift
问题描述
我试图更好地理解 Swift 中的委托,并且我已经看到了如何使用委托将数据从第二个视图控制器传递回初始视图控制器。但是我对如何使用委托将数据从初始视图传递到第二个视图感到困惑。我已经在我的初始视图中初始化了委托的一个实例,并在第二个视图中实现了委托协议,但是我仍然无法使用委托将数据从初始视图传递到第二个视图。任何关于我可能做错的建议将不胜感激!这是我的代表团尝试的故事板视图。1
初始视图类:
import UIKit
class ViewController: UIViewController {
var data: DataDelegate?
@IBOutlet weak var text: UITextField!
@IBOutlet weak var send: UIButton!
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view.
}
@IBAction func send(_ sender: Any) {
let msg = text.text!
data?.sendData(data: msg)
print("SENDING MESSAGE: \(msg)")
}
}
protocol DataDelegate {
func sendData(data: String)
}
Second View Class:
import UIKit
class RVC: UIViewController, DataDelegate {
@IBOutlet weak var delegationLabel: UILabel!
@IBOutlet weak var message: UILabel!
@IBOutlet weak var back: UIButton!
let vc = ViewController()
func sendData(data: String) {
print("DATA SENT")
let msg = data
print(msg)
message.text = data
}
override func viewDidLoad() {
super.viewDidLoad()
print("LOADED")
vc.data = self
// Do any additional setup after loading the view.
}
}
解决方案
推荐阅读
- graphql - Apollo 客户端/AWS AppSync JavaScript SDK 更改查询结果
- php - PHP 内部 Web 服务器提供意外字符的原因可能是什么?
- c# - 获取 Tree 中的所有孩子
- sql-server - 错误:Import-DbaCsvToSql:“++”运算符仅适用于数字。操作数是“System.IO.FileInfo”
- python - Google Cloud ML-engine scikit-learn 预测概率“predict_proba()”
- android - 区分静态片段和动态片段
- python - 如何从 Python 代码文件中设置 kivy 小部件 id
- asp.net - HttpContextWrapper 不返回正确的主机名
- java - ((Object)(this)).toString() 是否总是调用基本实现?
- xamarin.android - 如何在 Visual Studio Team Services (VSTS) 中构建 Xamarin.Android Java 绑定库?