2012-03-26 5 views
1

У меня есть segue (называемый "ToSettingsSegue"), который подталкивает пользовательский контроллер представления (SettingsTableViewController) в стек UINavigationController. SettingsTableViewController имеет прототип клеток ("prototypeSliderCell") установлен. Само собой разумеется, что это настройка в раскадровке.Программный экземпляр пользовательского UITableViewController с прототипами ячеек, созданных с использованием раскадровки

Другая секция кода толкает SettingsTableViewController на стек UINavigationController программно. В методе SettingTableViewController-tableView:cellForRowAtIndexPath:, -dequeueResusableCellWithIdentifier: возвращает нуль, когда это делается программно.

Я предполагаю, что это происходит из-за недоступности программных ячеек прототипа.

Мое обходное решение? Вызов -perfromeSegueWithIdentifier:sender: и отправка "ToSettingsSegue" и самообслуживание.

Есть ли лучшее решение этой проблемы? Я не могу не чувствовать, что это грязно.

ответ

1

Когда вы создаете экземпляр вашего ConfigurationTableViewController в коде, а не через серию раскадровки, определение ячейки прототипа недоступно, поскольку оно определено только в вашем раскадровке.

«Обходной путь», который вы описываете, должен работать нормально, и я не вижу в нем ничего грязного. Существует множество случаев, когда вы захотите программным образом инициировать серию раскадровки, и это то, что было разработано для обработки performSegueWithIdentifier:sender:.

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