Используя раскадровку, статические ячейки, в cellForRowAtIndexPath:
строке
UITableViewCell *cell =
[tableView dequeueReusableCellWithIdentifier:CellIdentifier];
всегда возвращается nil
.
Я проверил следующее:
- Идентификатор ячейки правильно установлен в IB / Раскадровке, и я использую тот же идентификатор в коде.Я проверял это много раз.
- Я не создавал экземпляр контроллера представления в другом месте (что было проблемой в в этом вопросе о потоке стека ).
Мой контроллер представления является подклассом UITableViewController
, конечно, обернутым в ad hoc контроллер навигации в раскадровке.Подозревая, что мой контроллер представления каким-то образом не знает об идентификаторах ячеек, определенных в раскадровке, потому что это может быть другой экземпляр, вот код, который его «создает».В prepareForSegue:
я использую
CustomViewController *vc = [[[segue destinationViewController]
viewControllers] objectAtIndex:0];
Другие настройки контроллера представления, выполненные здесь (настройка свойств и т. Д.), Работают нормально.
Я использую статические ячейки, потому что число секций иСтроки не изменяются, и каждая ячейка содержит статический текст (и другие элементы управления или текстовые поля, подлежащие редактированию).
Мне кажется, это очень распространенная задача (настроить статические ячейки из раскадровки в методах источника данных контроллера представления).Что я делаю не так?