我对Iphone很新,这是我项目中的最后一个模块。以下代码适用于chekmark的多个国家选择。 基本上我的问题是如何保存这些选定的国家/地区,并在返回此视图时再次显示复选标记。 请帮帮我..
我的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 :(得分:0)
如果你的数据不是那么大,你可以使用NSUserDefaults。
保存数据:
NSUserDefaults * userDefaults = [NSUserDefaults standardUserDefaults];
[userDefaults setObject:selectedIndexes forKey:@&#34; selection&#34;];
[userDefaults synchronize];
获取数据:
NSUserDefaults * userDefaults = [NSUserDefaults standardUserDefaults];
[userDefaults objectForKey:@&#34; selection&#34;]
答案 1 :(得分:0)
有很多方法可以解决它 -
根据我的说法,您必须创建与array.cout
相同的Country array
和default value
,并且最初将array
存储在didSelectRowAtIndexPath
中,
在default value
中,您必须根据UITableViewCellAccessoryCheckmark
更改存储的NSMutableArray
。
之后,您必须将NSUserDefaults
存储在var rigid = $("[name='Rigid']");
for (var j = 0; j < rigid.length; j++) {
var selValueRigid = rigid[j].val();
if (selValueRigid === data.Rigid) {
rigid[j].prop("checked", true);
} else {
rigid[j].prop("checked", false);
}
}
-