2011-06-19 22 views
5

Iam seçilen Kontrol Listesi satırları kaydetmek ve bu chekmark ile birden Ülke seçimi mükemmel çalışıyor kodu aşağıdaki benim project..The benim son modül olduğunu. Temelde sorum, seçilen bu ülkeleri nasıl kaydedeceğiniz ve bu görünüme geri döndüğünüzde onay işaretlerini nasıl göstereceğiniz. Veri kullanabilirsiniz kadar büyük değilse Iphone için oldukça yeni NSuserdefaults

Benim didSelectRowAtIndexPath yöntemi

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { 
UITableViewCell *selectedCell = [tableView cellForRowAtIndexPath:indexPath]; 

    if([selectedCell accessoryType] == UITableViewCellAccessoryNone) 
    { 
    [selectedCell setAccessoryType:UITableViewCellAccessoryCheckmark]; 
    [selectedIndexes addObject:[NSNumber numberWithInt:indexPath.row]]; 
    } 
    else 
    { 
    [selectedCell setAccessoryType:UITableViewCellAccessoryNone]; 
    [selectedIndexes removeObject:[NSNumber numberWithInt:indexPath.row]]; 
    } 

    [tableView deselectRowAtIndexPath:indexPath animated:NO]; 
    [tableView reloadData]; 
} 

Benim cellForRowAtIndexPath yöntemi

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
    HolidayAppDelegate *delegatObj = (HolidayAppDelegate *)[UIApplication sharedApplication].delegate; 

    static NSString *CellIdentifier = @"CustomCell"; 

    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier]; 

    if (cell == nil) { 
     cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease]; 

    } 

    cell.textLabel.text=[delegatObj.allcountryarray objectAtIndex:indexPath.row]; 

    [cell setAccessoryType:UITableViewCellAccessoryNone]; 

    for (int i = 0; i < selectedIndexes.count; i++) 
    { 
     NSUInteger num = [[selectedIndexes objectAtIndex:i] intValue]; 
     if (num == indexPath.row) { 
      [cell setAccessoryType:UITableViewCellAccessoryCheckmark]; 
      break; 
     } 
    } 

    return cell; 
} 

Teşekkür

cevap

0

.. Burada bana yardım edin NSUserDefaults.

verileri kaydetmek için:

NSUserDefaults * userDefaults = [NSUserDefaults standardUserDefaults];

[userDefaults setObject: selectedIndexes forKey: @ "seçim"];

[userDefaults senkronize];

verileri almak için:

NSUserDefaults * userDefaults = [NSUserDefaults standardUserDefaults];

[userDefaults objectForKey: @ "seçim"]

0

vardır bunu çözmek için bu kadar çok yönlü -

Bana göre sen senin Country array ve başlangıçta bir NSMutableArray ve array.cout aynı oluşturmak zorunda Eğer didSelectRowAtIndexPath yılında Eğer UITableViewCellAccessoryCheckmark göre saklanan default value değiştirmek zorunda, sizin array içinde default value saklayın.

Ve bundan sonra NSUserDefaults yılında NSMutableArray saklamak zorunda -

Link - FOR SAVE ARRAY IN NSUserDefaults