2016-05-06 4 views
0

У меня есть segue, привязанный к представлению таблицы. Мне нужно выяснить, какая ячейка была задействована в prepareForSegue, поэтому я могу извлечь информацию для этой ячейки и передать ее на контроллер представления назначения. Как мне это сделать?Быстрый вызов prepareForSegue после cellForRowAtIndexPath

Edit: Код:

override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) { 
    print ("preparingForSeque...") 
    if (segue.identifier == "quoteView") { 
     let svc = segue.destinationViewController as! QuoteViewController 
     svc.category = clickedCategory 
     print ("svc.category is now " + clickedCategory) 
     print ("Preparing for transfer to a quoteView") 
    } 
} 

override func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) { 
    clickedCategory = categoryArray[indexPath.row] 
    print ("cell clicked, clickedCategory is now " + clickedCategory) 
} 
+1

Если вы вызываете 'tableView.reloadData()', все ячейки будут перезагружены, а 'cellForRowAtIndexPath:' будет вызываться для каждой видимой ячейки. Что именно ты пытаешься сделать? – EmilioPelaez

+0

Вы не вызываете cellForRowAtIndexPath. Система вызывает этот метод, когда представление таблицы необходимо обновить. Вы имеете в виду, что вы хотите, чтобы ваш просмотр таблицы обновлялся, прежде чем вы запускаете segue? Расскажите, что вы пытаетесь сделать на высоком уровне. –

+0

Я пытаюсь отобразить данные в новом ViewController на основе щелкнутой ячейки, и я переношу данные между двумя классами всякий раз, когда нажимается ячейка. Однако, когда я нажимаю на ячейку, prepareForSegue вызывается перед значением, которое мне нужно для переноса изменений (поэтому значение неверно) –

ответ

0

Используйте tableView.reloadData(), если вы хотите, чтобы перезагрузить всю TableView, и если вы хотите, чтобы перейти к контроллеру просмотра после нажатия на использование клеток имени Func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath).

0

«Вы можете использовать tableView.indexPathForSelectedRow() в файле prepareForSegue, чтобы получить индекс ячейки, которую они выбрали, и получить ваши данные». Решение dan в комментариях.

+0

Итак, реальный вопрос: «У меня есть привязка к табличному представлению. Мне нужно выяснить, какая ячейка была задействована в' prepareForSegue', поэтому я могу извлечь информацию для этой ячейки и передать ее на контроллер представления назначения. Я делаю это?" Вы должны отредактировать исходный вопрос, чтобы он дал понять, что вы просите. –

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

  • Нет связанных вопросов^_^