2015-02-06 2 views
0

У меня есть UILabel в моем TableViewCell_A. Когда я изменяю значение в своем TableViewCell_B, я хочу изменить текст UILabel в TableViewCell_A. Как может быть ссылка на ячейку, которая уже создана. Я не знаю, как это может быть принято как self, и я попытался использовать var cell = MySettingsViewController().settingsTableView.cellForRowAtIndexPath(2), что явно неверно. Кто-нибудь, пожалуйста, помогите мне.Ссылка на объект TableViewCell A в TableViewCell B

+3

Вы не должны пытаться ссылаться на другие ячейки напрямую, поскольку 1) они повторно используются и 2) информация в них должна храниться в модели (с использованием конструкции MVC). Поэтому обновите свою модель, которая поставляет информацию в ваш 'UITableViewCell', а затем перезагрузите ячейки в' indexPath', которые вы хотите обновить. –

+0

@RoboticCat Это может быть глупый вопрос, но каков призыв к перезагрузке одной ячейки? – uhfocuz

+1

Не тупой вопрос вообще. Вам нужно использовать 'reloadRowsAtIndexPaths (indexPaths: [AnyObject], с анимациейRowAnimation: UITableViewRowAnimation)' (ссылка на документацию: https: //developer.apple.com/library/ios/documentation/UIKit/Reference/UITableView_Class/index.html# // apple_ref/occ/instm/UITableView/reloadRowsAtIndexPaths: withRowAnimation :) где 'indexPaths' - это массив, содержащий объекты NSIndexPath (или в вашем случае один объект NSIndexPath) и' UITableViewRowAnimation', вероятно, '.None'. –

ответ

0

я должен был пройти в моем UITableView к TableViewCellA при его инициализации, чтобы я мог получить доступ к .reloadRowsAtIndexPaths([NSIndexPath(forRow: 2, inSection: 0)], withRowAnimation: UITableViewRowAnimation.None) который перезагрузке TableViewCellB с новыми значениями.