gpt4 book ai didi

ios - 无法将数据保存到 MVC (Swift)

转载 作者:搜寻专家 更新时间:2023-11-01 07:02:51 26 4
gpt4 key购买 nike

我无法将我的数据从文本字段保存到 MVC。

当我输入文本并单击按钮时,没有添加数据。

我该如何解决?

我从这个问题中删除了 viewDidLoad() with table.delegate = self, table.dataSource = self

这是 ViewController:

class ViewController: UIViewController, UITextFieldDelegate, UITableViewDelegate, UITableViewDataSource {

@IBOutlet weak var table: UITableView!
@IBOutlet weak var Text: UITextField!

var model = ViewModel()

func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return model.persons?.count ?? 0
}

func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: "Cell", for: indexPath) as! TableViewCell
let person = model.persons?[indexPath.row]
cell.Name?.text = person?.name
return cell
}

func textFieldEditing(_ sender: UITextField) {
model.input = sender.text
}

@IBAction func Add(_ sender: UIButton) {
if let name = model.input, name.count > 0 {
let person = Person()
person.name = name
model.addPerson(person)
model.input = nil
}
table.reloadData()
}
}

型号

class ViewModel {
var persons: [Person]?
var input: String?

func addPerson(_ person: Person) {
if persons == nil { persons = [] }
persons?.append(person)
}
}
class Person {
var name: String?
}

最佳答案

try this 

//func textFieldEditing(_ sender: UITextField) {//model.input = sender.text//

func textFieldDidEndEditing(_ textField: UITextField) {
model.input = textField.text
}


@IBAction func Add(_ sender: UIButton) {
self.view.endEditing(true)
if let name = model.input, name.count > 0 {
let person = Person()
person.name = name
model.addPerson(person)
model.input = nil
}
table.reloadData()
}

关于ios - 无法将数据保存到 MVC (Swift),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50094405/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com