2016-04-18 4 views
0

У меня есть два метода, которые меняют аккреционный тип ячейки. Сначала вызывается после загрузки всех ячеек, другая вызывается, когда пользователь нажимает на любую ячейку.Cant access cell from willDisplayCell метод

Второй метод работает отлично, он удаляет галочку с выбранной ячейки. К сожалению, первый ничего не делает (я хочу добавить галочку в одну из ячеек). Это меня смущает, потому что эти методы должны работать одинаково, не так ли?

// First method 
- (void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath { 

    if ([indexPath row] == ((NSIndexPath*)[[tableView indexPathsForVisibleRows] 
lastObject]).row) 
    { 
     LanguageTableViewCell *cell = [self.tableView cellForRowAtIndexPath: [NSIndexPath indexPathForRow:myNumber inSection:0]]; 
     cell.accessoryType = UITableViewCellAccessoryCheckmark; 
    } 
} 

// Second method 
- (void)tableView:(UITableView)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
    LanguageTableViewCell *cell = [tableView cellForRowAtIndexPath:[NSIndexPath indexPathForRow:myNumber inSection:0]]; 
    cell.accessoryType = UITableViewCellAccessoryNone; 
} 

Я попытался изменить класс ячейки, но все еще не работает. Im не уверен, что первая функция вызывается в нужное время = после просмотраDidLoad ... Спасибо за помощь!

+0

Довольно творческий подход) Что такое «myNumber»? Это постоянный? – Zapko

+0

Замечание: если вы повторно используете свои ячейки, у вас появятся проблемы с тем, как вы здесь делаете. Если вы показываете аксессуар Checkmark в ячейке без ссылки на источник данных, тогда при прокрутке вниз или вверх, эта ячейка может быть повторно использована, и вы увидите галочку, где вы этого не ожидаете. Я предполагаю, что в настоящее время у вас есть несколько ролей, которые появляются в вашей таблице, поэтому почему вы не заметили эту проблему? – pnizzle

ответ

1

Вы хотите использовать - (__kindofUITableViewCell *)cellForRowAtIndexPath:(NSIndexPath *)indexPath.

+0

Я вижу, я определил ячейку дважды. Благодаря! – Lolipop52