2017-02-10 2 views
2

У меня есть tableView в контроллере представления, где я отображаю данные из вызова API, теперь, если пользователь выбирает ячейку tableview (например, строку 2 в TableView), я хочу получить эти данные (данные в строке 2 TableView) и отобразите его в текстовом поле на том же экране. Каков наилучший способ сделать это?Как получить данные, отображаемые в ячейке TableView, и отобразить их в текстовом поле?

ответ

4

Вы можете попробовать это, когда пользователь выбирает конкретный UITableViewCell-х, то, что содержимое ячейки будет показано в UITextField.

func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) { 

     let cell= tableView1.cellForRow(at: indexPath) 

     if let txtVal = cell?.textLabel?.text { 
      textField.text = txtVal 
     } 
    } 
+0

Это отлично работает! – SeaWarrior404

+0

Счастливое кодирование :-) –

5

Простейший способ вы можете показать показать UIAlertController с textField на didSelect таблицыViewCell.

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) 
} 
0

У вас есть данные с веб-сервиса, который вы показываете на вашем UITableView говорят arrWebServiceData. и у вас есть индекс строки, на который пользователь нажал, скажем, index. Самый простой способ - получить данные от arrWebServiceData по адресу index и использовать его для отображения на тестовом поле.

, например:

NSArray * arrWebServiceData; // вы храните данные от Wevserice здесь.

функ 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. 

} 
Смежные вопросы