2015-06-20 4 views
0

У меня следующая ситуация:Как повторно использовать ячейку, которая находится внутри другой вид таблицы контроллер

  • Там в контроллере представления таблицы, которая отображает все шрифты фамилии, и это внутри раскадровкой
  • Внутри UITableViewController в раскадровке есть ячейка с идентификатором «FamilyName», который имеет также индикатор раскрытия, связанный с Segue
  • Я добавил UISearchController, который должен фильтровать результаты контроллера представления предыдущей таблицы

Внутри контроллера представления таблицы, которая действует в качестве результатов Updater Я зарегистрировал тот же идентификатор повторного использования:

tableView.registerClass(UITableViewCell.self, forCellReuseIdentifier: "FamilyName") 

И я звоню dequeueReusableCellWithIdentifier: forIndexPath :, но я получаю другую UITableViewCell. Я хотел бы получить ту же ячейку, которая находится в раскадровке внутри другого контроллера табличного представления, так что она уже связана с segue.

ответ

1

Повторное использование вашего стола. Не создавайте новый, просто меняйте источник данных. Это должно работать должным образом. Просто измените источник данных и обновите таблицу.

+0

Как его повторно использовать? он находится внутри файла раскадровки, я не знаю, как его создать. –

+0

Просто измените источник данных. Если ваши данные хранятся в массиве, вы изменяете содержимое массива, а затем вызываете [tableview reloadData] для обновления таблицы. –

+0

Ситуация сложнее: один контроллер таблицы должен отображать данные, а другой - UISearchResultsUpdating и находится внутри UISearchController. Я не могу просто использовать первый вид табличного представления контроллера табличного представления, это два отдельных контроллера табличных представлений. –

0
tableView.registerClass(UITableViewCell.self, forCellReuseIdentifier: "FamilyName") 

Это означает, что: У не использовать раскадровку, чтобы получить клетку. Так что вы едва ли можете удивляться, когда камера не приходит из раскадровки: вы сказали, что не нужно. Единственный способ получить ячейку из раскадровки - это представление таблицы для регистрации no класса или nib для этого идентификатора повторного использования этой ячейки.

+0

Если я не зарегистрирую класс, и я вызываю dequeueReusableCellWithIdentifier: forIndexPath: приложение выходит из строя. –

+0

Да, потому что этот контроллер представления таблиц не был создан из сцены контроллера таблицы в раскадровке. – matt

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

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