Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sqlite/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 带有文本字段的uitableviewcell传递更改的数据_Ios_Sqlite_Uitableview_Swift - Fatal编程技术网

Ios 带有文本字段的uitableviewcell传递更改的数据

Ios 带有文本字段的uitableviewcell传递更改的数据,ios,sqlite,uitableview,swift,Ios,Sqlite,Uitableview,Swift,我有一个带有标签和文本字段的自定义uitableviewcell,现在我想在将文本字段更改为uitableviewcontroller时将其数据传递给用户 tableview由sqlite数据库中的数据填充,该数据库用fmdb包装,并且我在应用程序中使用的每个db中的TableViewCell数都不同。数据库中存储了多少字段及其名称,表的填充工作正常 我设法从单元格中的文本字段中获取一个“EditingDiEnd”事件到我的视图控制器,该事件用于激活用于保存更改的工具栏按钮。我通过cell.fi

我有一个带有标签和文本字段的自定义uitableviewcell,现在我想在将文本字段更改为uitableviewcontroller时将其数据传递给用户

tableview由sqlite数据库中的数据填充,该数据库用fmdb包装,并且我在应用程序中使用的每个db中的TableViewCell数都不同。数据库中存储了多少字段及其名称,表的填充工作正常

我设法从单元格中的文本字段中获取一个“EditingDiEnd”事件到我的视图控制器,该事件用于激活用于保存更改的工具栏按钮。我通过
cell.fieldData.addTarget(self,action:“SaveButtonOn:”,forControlEvents:UIControlEvents.EditingDidEnd)完成了这项操作。

关于在计算机中创建单元

tableView(tableView:UITableView,cellForRowAtIndexPath:nsindepath)

我的问题是现在我需要从单元格内的文本字段获取数据。我找到了一些代码和教程,用于将参数传递给via addTarget(),但仅用于按钮,我不知道这是否适用于文本字段

如果你需要更多的信息,尽管问,我希望你能理解我需要做什么

谢谢你的回答
Adarkas

在UITextField中使用委托:

    import UIKit
    class MyViewController: UIViewController, UITextFieldDelegate {
      var myTextField: UITextField!

        override func viewDidLoad() {
            super.viewDidLoad()
            myTextField = UITextField(frame: CGRectMake(0, 0, 100, 30))
            myTextField.delegate = self
        }

      func textFieldDidEndEditing(textField: UITextField) {
        // Do stuff here.
      }
    }

如果设置正确,您拥有的任何文本字段都会调用委托方法
textfielddendediting
,然后您可以根据需要处理其内容(
textField.text
)。

要从UITableView的特定单元格中的uitextfield获取值:-

  • 确保首先为uitextfield设置标记,最好使用indexpath.row-like
    cell.textFld.tag=indexpath.row
  • 现在编写以下代码从textfield检索值:-


  • 哇,谢谢,这比我想象的容易多了。我可以在该函数中以某种方式获取tableviewcell中标签的文本吗?因为我需要它将更改后的文本写入db的右列中。请使用相应的标签来查找它。您所说的“对应”是指例如行号,因为调用委托时我没有获得行号。或者我可以吗?您可以向textFIeld(由委托调用传递)添加一个标记,该标记实现selectedRow indexpath或类似的内容。然后可以确定相应的标签。或者可以使用
    .leftView
    属性。我把你的答案和@Vizllx的答案结合起来了,所以我已经这么做了,它正是我想要的。再次感谢。嗯,那会更好,但是我如何获得正确的行号,用户在我的TableView中进行了一些编辑?
    let indexPath = NSIndexPath(forRow:row, inSection:0) //just provide the row number from where you want to fetch the textfeild
    
    let cell : UITableViewCell? = self.tableView.cellForRowAtIndexPath(indexPath) as UITableViewCell?
    
    (cell.contentView.viewWithTag(2) as UITextFeild).text // access the value of textfeild by its tag with this way