Я получаю эту ошибку:Зарегистрировать ячейку программно инстанциирован Table View Controller
'NSInternalInconsistencyException', reason: 'unable to dequeue a cell with identifier NavigationNodeCell - must register a nib or a class for the identifier or connect a prototype cell in a storyboard'
Я использую две ячейки с тем же классом «NavigationItemCell» и два идентификаторы «NavigationNodeCell» и «NavigationLinkCell».
И создать ячейку например .:
let cell: NavigationItemCell = self.tableView.dequeueReusableCellWithIdentifier("NavigationNodeCell", forIndexPath: indexPath) as! NavigationItemCell
Эта проблема была передо мной, например, Assertion failure in dequeueReusableCellWithIdentifier:forIndexPath:
Как я понимаю (например, anser of Sebastian Borggrewe), должно быть достаточно, чтобы зарегистрировать UITableViewCell в доске объявлений с его пользовательским классом и идентификатором.
Это именно то, что я сделал, и я все еще получаю эту ошибку. Я попытался использовать два разных класса, но это не решило ошибку. Я также пытался зарегистрировать свои ячейки с помощью наконечника, но там я столкнулся с другими проблемами (метка - ноль).
Я обнаружил, что эта проблема, вероятно, возникает из-за того, что я программным образом создаю новый контроллер табличного представления.
var newController = MyTableViewController()
Означает ли это, что мне придется регистрировать нибы? Является ли проблема, что мне придется регистрировать один и тот же класс дважды? И как мне избежать проблемы с меткой nil?
Кроме ответов уже размещен, а также убедитесь, что ваш reuseIdentifier в cellForRowAtIndexPath таким же, как определено при регистрации cellClass/пера с Tableview и одной определенных в раскадровке/XIb клетки. – NSNoob