2017-01-24 3 views
-4

Как выбрать строку UITableView Данные, которые выбираются программно.IOS swift 3 UITableView

Например. Я разрабатываю как это для выбора

self.tableView.selectRow(at: indexPath, animated:true, scrollPosition: .middle) 

И на получение данных строк я использовал

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

} 

Я не получить результат.

ответ

0

набор следующих в вашем viewDidLoad

tableView.delegate = self 
0

Вы можете получить его следующим образом:

func getCell(row: Int, section: Int) -> CellClassName { 
     let indexPath = NSIndexPath(forRow:row, inSection: section) 
     let selectedCell = tableView.cellForRowAtIndexPath(indexPath) as! CellClassName! 
     return selectedCell 
    } 
0

Выдержки из Apple docs:

Вызов этого метода не вызывает делегат получите сообщение tableView(_:willSelectRowAt:) или tableView(_:didSelectRowAt:), и он не отправляет UITableViewSelectionDidChange уведомления наблюдателям.

Так что ваш метод делегата не будет вызван. Но если вы вызываете этот метод, у вас уже есть путь к указанному элементу, поэтому вы можете обрабатывать его, как вы уже делаете в своем делетете.

Например:

var elements: [String] = [] 
var selectedElement: String? 

var tableView: UITableView! 

func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) { 
    selectedElement = elements[indexPath.row] 
} 

func selectElement(element: String) { 
    let indexPath = IndexPath(row: elements.index(of: element), section: 0) 
    selectedElement = element 
    tableView.selectRow(at: indexPath, animated: true, scrollPosition: .middle) 
}