2011-06-19 67 views
5

Iam對Iphone來說很新穎,這是我在我的項目中的最後一個模塊。下面的代碼完美地適用於多國選擇與chekmark。 基本上我的問題是如何保存這些選定的國家,並回到這個視圖時再次顯示覆選標記。 請幫我在這裏..在NSuserdefaults中保存選定的cheklist行

我didSelectRowAtIndexPath方法方法

- (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]; 
} 

我的cellForRowAtIndexPath方法

- (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; 
} 

感謝

回答

0

如果你的數據不是那麼大,你可以使用NSUserDefaults的。

要保存數據:

* NSUserDefaults的userDefaults = [NSUserDefaults的standardUserDefaults];

[userDefaults setObject:selectedIndexes forKey:@「selection」];

[userDefaults synchronize];

要獲取數據:

* NSUserDefaults的userDefaults = [NSUserDefaults的standardUserDefaults];

[userDefaults objectForKey:@ 「選擇」]

0

有這麼多的方式來解決這個問題 -

據我,你必須創建一個NSMutableArrayarray.cout與您Country array並初步您將default value存儲在您的array, 的didSelectRowAtIndexPath中,您必須根據UITableViewCellAccessoryCheckmark更改存儲的default value

之後,你必須將NSMutableArray存儲在NSUserDefaults -

Link - FOR SAVE ARRAY IN NSUserDefaults