1

У меня проблема в моем приложении и вы не можете найти решение.EXC_BAD_ACCESS перезагрузка ячейки с текстовым полем внутри

У меня есть UICollectionView с пользовательскими ячейками. У моих ячеек есть UITextField внутри.

Когда текстовое поле находится в editMode (с активной клавиатурой), если я перезагружу collectionView, у меня есть ошибка EXC_BAD_ACCESS. Эта ошибка возникает из-за вызова метода resignFirstResponderUITextField. Проблема в том, что ячейка, вероятно, больше не существует внутри коллекции, поскольку она была освобождена.

Это мой стек на ошибку:

enter image description here

Любая идея, как избежать этой проблемы?

Заранее спасибо

+0

Ваш заказ Разрушитель клетка правильно распоряжаться всеми наблюдателями? – cdstamper

+0

вы можете лучше объяснить свой вопрос @cdstamper, я добавляю только resignFirstResponder в textFieldShouldReturn – DaSilva

+0

Можете ли вы показать мне след? Похоже, что ваш dealloc не делает то, что должен. Возможно, ваш делегат UITextField перестает существовать в какой-то момент - в этом случае вы должны установить его на нуль, когда ваш объект исчезнет. – cdstamper

ответ

0

Добавить ссылку в модели с текстовым полем, слабой ссылки.

Когда модель будет dealloc, смените ответчика текстового поля.

Код:

-(void)dealloc{ 
    if (self.refrenceTextField) { 
     [self.refrenceTextField resignFirstResponder]; 
     self.refrenceTextField = nil; 
    } 
} 
+0

Спасибо @SamuelRodrigues, он работает !!! – DaSilva

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