2016-11-17 6 views
0

Я новичок в Objective-C и iOS, и у меня странная проблема, только в одной конкретной ситуации. Это часть моего переключателя кода:Как получить первую ячейку TableView?

if(nowSolo>-1){ 
    [soloarray replaceObjectAtIndex:nowSolo withObject:[NSNumber numberWithBool:NO]]; 
    NSIndexPath *indexPath2 = [NSIndexPath indexPathForRow:nowSolo inSection:0]; 
    CustomCell *cell2=[_tableView cellForRowAtIndexPath:nowSolo]; 
    cell2.solo.backgroundColor=[UIColor colorWithRed:0.29 green:0.67 blue:0.62 alpha:1.0]; 
} 
nowSolo=row; 
[soloarray replaceObjectAtIndex:row withObject:[NSNumber numberWithBool:YES]]; 
cell.solo.backgroundColor=[UIColor colorWithRed:0.13 green:0.41 blue:0.37 alpha:1.0]; 

Все идет нормально, но когда переменная nowSolo равен 0, то cell2 = null. Я не понимаю, почему, потому что для других значений, таких как 1,2,3 и т. Д., Он работает правильно.

+0

, когда вы хотите получить ячейка? – vaibhav

+0

вы используете 'cell' вне условия if. что это ? – Mahesh

+0

обновите свой вопрос с помощью правильного кода (метода) –

ответ

1

Вы можете получить ячейку внутри обоих методов cellForRowAtIndexPath & didSelectRowAtIndexPath как при настройке или при касании.

Получить конкретную ячейку при настройке внутри cellForRowAtIndexPath метод делегата, как показано ниже код:

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { 

    if (indexPath.row == 0) { 
     // configure cell here 
    } 
    return cell; 
} 

Получить конкретную ячейку при прикосновении с помощью didSelectRowAtIndexPath метода смотрите ниже код:

-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { 

    UITableViewCell *cell = [tableView cellForRowAtIndexPath:indexPath]; 
    if (indexPath.row == 0) { 
      // do specific action on first cell 
    } 
}