如何获取TableView单元格中显示的数据并将其显示在文本字段中?

时间:2017-02-10 06:11:16

标签: ios swift uitableview

我在视图控制器中有一个tableView,我在那里显示来自API调用的数据,现在如果用户选择了一个tableview单元格(比如TableView中的第2行),我想获取那些数据(TableView第2行中的数据) )并将其显示在同一屏幕上的文本字段中。做这个的最好方式是什么?

3 个答案:

答案 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.

}