swift - 如何在 swift 中将委托值添加到 tableview
问题描述
在这里,我将 secondVC 文本字段值发送到 firstVC tableview,但我没有在 tableview 中接收委托值。
这是我的代码:
在第一个VC中:
import UIKit
class CreateBusinessViewController: UIViewController, MyDataSendingDelegateProtocol, UITableViewDelegate, UITableViewDataSource {
@IBOutlet weak var tableView: UITableView!
var iteamsArray = [String]()
override func viewDidLoad() {
super.viewDidLoad()
}
func sendDataToFirstViewController(myData: String) {
self.iteamsArray.append(myData)
print(iteamsArray)
}
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
if (segue.identifier == "addSegue") {
let vc = segue.destination as! CreatePopUpViewController
vc.delegate = self
}
}
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return iteamsArray.count
}
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: "cell", for: indexPath) as! BusinessTableViewCell
cell.nameLabel.text = iteamsArray[indexPath.row]
return cell
}
}
在 secondVC 中:
protocol MyDataSendingDelegateProtocol {
func sendDataToFirstViewController(myData: String)
}
class CreatePopUpViewController: UIViewController {
var delegate: MyDataSendingDelegateProtocol?
@IBOutlet weak var addTf: UITextField!
@IBAction func saveButn(_ sender: Any) {
self.delegate?.sendDataToFirstViewController(myData: addTf.text!)
dismiss(animated: true, completion: nil)
}
}
如何将 secondVC 文本字段数据添加到 firstVC 数组?
解决方案
要将数据反映到表格视图单元格中,您只需要重新加载表格视图,就像我在下面的代码中更新了您的函数检查一样。
func sendDataToFirstViewController(myData: String) {
self.iteamsArray.append(myData)
tableView.reloadData()
print(iteamsArray)
}
希望这种方式可以帮助你。
推荐阅读
- wordpress - 如何验证联系表 7 中所有国家/地区的电话号码?
- c++ - 由 std::bind 分离的 std::function 的模板类型是未定义的行为吗?
- html - 为什么 CSS 属性值在标签本身中使用字符串而不在规则中表示?
- ruby-on-rails - 在 Rails 6 中同时或循环发送多封电子邮件的最佳实践?
- c# - 实体框架核心 ForeignKeyAttribute 两边
- qt - 如何防止在 TextEdit QML 中输入空格?
- python - 在函数中定义 Tkinter 小部件,但在其他地方引用它
- amazon-web-services - 如何检查未使用的 AWS 运行实例
- opengl - 来自 World Machine 的纹理在 OpenGL 中无法正确渲染
- flutter - /bin/sh: /packages/flutter_tools/bin/xcode_backend.sh: github 操作中没有这样的文件或目录