【问题标题】:Swift UITableview edit different values in textboxesSwift UITableview 在文本框中编辑不同的值
【发布时间】:2020-02-17 13:59:25
【问题描述】:

如果已经有人问过这个问题,但我找不到我要找的东西,我提前道歉。因此,如果您能指出我正确的方向,那将有所帮助。

所以我有一个UIViewController,它有一个UITableview,有4 个不同的单元格。每个都有不同的值,每个单元格将有 1 个UITextField 和 1 个UILabel。我有一个UIBarButtonItem,可以让我编辑或保存数据。最终将新数据写入数据库。我的问题是我不确定如何编辑UITextField 中的数据。我不知道从哪里开始。下面是我上面描述的屏​​幕截图。左边是UILabel,右边是UITextfield。这些值都将由另一个函数验证,以确保它们是正确的。我只想根据需要更改字段的值,然后保存数据。不确定如何实际提取 cellForRowAt 之外的值。其他一切正常,一旦我解决了这个问题,我就可以让一切正常工作。

【问题讨论】:

    标签: ios swift uitableview uitextfield edit


    【解决方案1】:

    可以使用 Cell 的委托到您的 VC(其中包含 TableView 的那个)来完成。 当文本字段值更改时,调用您的委托并传递单元格,也许还有文本字段内的字符串值。在您的父 VC 中,您获取单元格并轻松找到它的索引并更新您的模型。

    在您的单元格自定义类中

    protocol ProtocolName{
      func  FunctionName(c:UITableViewCell,val:String)
    }
    ...
    var delegate:ProtocolName!
      @IBAction  func textFieldDidBeginEditing(textField: UITextField) {
           delegate.FunctionName(self,textfield.text)
        }
    

    在你的父 VC 中,确保你符合 yo ProtocolName,然后

    func  FunctionName(c:UITableViewCell,val:String){
        if let index = tableview.indexPath(for cell: c){
         // Update your model based on the index and val which is whatever is in the textfield of that cell. You can also reload data here
         }
    }
    

    【讨论】:

      【解决方案2】:

      您可以将所有单元格存储在一个数组中。当您想访问UITextField 的数据时,您可以从该数组中获取所有文本字段。您可以给UITextField 提供标签,例如textField.tag = indexPath.row。这样您就可以为每个UITextField 添加不同的条件。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2010-11-18
        • 1970-01-01
        • 1970-01-01
        • 2011-05-24
        • 1970-01-01
        • 2014-09-06
        相关资源
        最近更新 更多