2013-04-19 3 views
1

Я использую UITableView и пользовательскую ячейку с checkbox. У меня есть более 1 раздела. Когда флажок check в первом разделе, например ячейка с row = 0 и section = 0, я сохраняю данные и работает. Но клетка в строке = 0 и section = 1 также проверяется! Как я могу сделать разницу между этими разделами?Многоразовая ячейка в UITableView

Большое вам спасибо!

+1

Показать свой код для сохранения данных для отмеченного предмета. –

ответ

3

Следующий пример кода поможет вам в вашей ситуации.

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { 
    static NSString *CellIdentifier = @"Cell"; 

    CustomCell *cell = (CustomCell*)[tableView dequeueReusableCellWithIdentifier:CellIdentifier]; 
    if (cell == nil) { 
     cell = (CustomCell *) [[[NSBundle mainBundle] loadNibNamed:@"CustomCell" owner:self options:nil] objectAtIndex:0]; 
     cell.selectionStyle = UITableViewCellSelectionStyleNone; 
    } 
    cell.checkBox = [self fillCheckBoxStatus:indexPath];//This method will say about check box whether going to SET or NOTSET. 
    //... 
    return cell; 
} 
+0

Большое вам спасибо за это решение! :) – Lapinou

-2

использование dequeueReusableCellWithIdentifier для nil как сильфона ...

-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{ 
    static NSString *CellIdentifier = @"Cell"; 

    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:nil]; 
    if (cell == nil) { 

    cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleValue1 reuseIdentifier:nil] autorelease]; 
     ////you another code.. 
    } 
    return cell; 
} 
+0

Тогда зачем вам 'dequeueReusableCellWithIdentifier'. Создайте ячейку и верните ее. Вы можете сохранить 3 строки кода –

+0

нет здесь это требуется, пожалуйста, прочитайте документы об этом методе UITableViewCell ... –

+1

'dequeueReusableCellWithIdentifier' используется для повторного использования ячейки. Передавая нуль, вы не используете повторно какие-либо ячейки. Поэтому 'dequeueReusableCellWithIdentifier' действительно не требуется. Если для этого требуется __do не передавать nil в качестве аргумента__. Прочитайте документацию по [dequeueReusableCellWithIdentifier] (http://developer.apple.com/library/ios/#documentation/uikit/reference/UITableView_Class/Reference/Reference.html). Он говорит: __identifier: строка, идентифицирующая объект ячейки для повторного использования. Этот параметр не должен быть nil .__ –