我在视图控制器中有一个tableView,我在那里显示来自API调用的数据,现在如果用户选择了一个tableview单元格(比如TableView中的第2行),我想获取那些数据(TableView第2行中的数据) )并将其显示在同一屏幕上的文本字段中。做这个的最好方式是什么?
答案 0 :(得分:5)
最简单的方法是,您可以在tableViewCell的UIAlertController
上显示textField
didSelect
。
func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
let alert = UIAlertController(title: "Edit Data", message: "Edit corresponding detail", preferredStyle: .alert)
alert.addTextField { (textField) in
textField.placeholder = "Enter name"
textField.text = yourArray[indexPath.row]
}
alert.addAction(UIAlertAction(title: "Edit", style: .default, handler: { (action) in
//Edit data on array
}))
alert.addAction(UIAlertAction(title: "Cancel", style: .cancel, handler: nil))
self.present(alert, animated: true)
}
答案 1 :(得分:2)
你可以尝试这个,当用户选择特定的UITableViewCell时,那个单元格内容将显示在UITextField中。
func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
let cell= tableView1.cellForRow(at: indexPath)
if let txtVal = cell?.textLabel?.text {
textField.text = txtVal
}
}
答案 2 :(得分:0)
您在UITableview上显示的来自网络服务的数据说arrWebServiceData
。并且您有用户点击的行索引说index
。最简单的方法是从arrWebServiceData
index
获取数据并使用它在测试字段上显示。
例如:
NSArray * arrWebServiceData; //你在这里存储来自Wevserice的数据。
func tableView(_ tableView:UITableView,didSelectRowAt indexPath:IndexPath){
let index = indexPath.row;
let dataAtIselectedIndex = yourArray[indexPath.row] ;
//If data is string, dirctly display it on text field,or if its dictionary, set object of diction on your text field.
}