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

标签 ios swift model-view-controller

我无法将我的数据从文本字段保存到 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/

相关文章:

iphone - EGOTableViewPullRefresh 与 GMGridView 集成时不刷新并显示向上箭头

ios - 用 UINavigationController 中的另一个 View 正确替换顶 View

c++ - 我可以在 Swift 上将一个类传递给同一个类中的函数吗(试图编写一个使用 C++ 和 Swift 语言编写的类)

swift - AVPlayer 最多只能播放 16 个视频

ios - 为什么不是所有项目都附加到数组中?

node.js - NodeJs sails 模型替换现有表

model-view-controller - MVC 真的是四头模式吗?

ios - 更改用户代理

iphone - ios iPhone/iPad - 使用 GData 静态库 libGDataTouchStaticLib.a 的项目构建失败(重复符号)

model-view-controller - MVC : Where to trigger user registration emails