我有一个带标签和文本字段的自定义uitableviewcell现在我想在将文本更改为uitableviewcontroller时从文本字段传递数据。
tableview中填充了一个用fmdb包装的sqlite数据库中的数据,并且我在应用程序中使用的每个db中tableviewcells的数量都不同。它有多少个字段以及它们有什么名称存储在db中,表的填充效果很好。
我设法得到了一个" EditingDidEnd"从单元格中的文本字段到我的视图控制器的事件,该事件用于激活工具栏按钮以保存更改。我是通过cell.fieldData.addTarget(self, action: "SaveButtonOn:", forControlEvents: UIControlEvents.EditingDidEnd)
在
中创建单元格 tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath)
。
我现在的问题是我需要从单元格内的文本字段中获取数据。我找到了一些代码和教程,用于将参数传递给via addTarget(),但仅用于按钮,我不知道它是否可用于文本字段。
如果您需要更多信息,请询问,我希望您能解读我需要做的事情。
感谢您的回答 Adarkas
答案 0 :(得分:1)
在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.
}
}
如果设置正确,您调用的任何textField都会调用委托方法textFieldDidEndEditing
,并且从那里开始您可以使用其内容(textField.text
)。
答案 1 :(得分:1)
要从UITableView的特定单元格中的UITextFeild获取值: -
cell.textFld.tag=indexpath.row
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