选择多行的许多方法和方法都已弃用或不起作用。
我只想在didSelectRowAtIndexPath
中选择多行并将其保存到数组或NSUserDefault
中。这个案例我选择NSUserDefault
,但我愿意将其更改为Array。
这是我的代码:
-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{
NotificationsTableViewCell *cell = (NotificationsTableViewCell*)[tableView cellForRowAtIndexPath:indexPath];
//set clicked icon after row selected
cell.imgIcon.image=[UIImage imageNamed:@"select-icon"];
//notification id for selected row
Notifications* selected = notifications[indexPath.section];
selectedGroup = selected.NotificationsId;
//save it in nsuserdefaults
[[NSUserDefaults standardUserDefaults] setObject:selectedGroup forKey:@"notificationSelectedID"];
}
-(void)tableView:(UITableView *)tableView didDeselectRowAtIndexPath:(NSIndexPath *)indexPath{
//deselect the row
}
注意:我使用的是最新的Xcode SDK 8。
感谢您的帮助。
答案 0 :(得分:1)
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
NotificationsTableViewCell *cell = (NotificationsTableViewCell*)[tableView cellForRowAtIndexPath:indexPath];
// do your logic with following condition
if (cell.accessoryType == UITableViewCellAccessoryNone)
{
cell.accessoryType = UITableViewCellAccessoryCheckmark;
}
else
{
cell.accessoryType = UITableViewCellAccessoryNone;
}
}
答案 1 :(得分:0)
您可以声明可变数组,并在每次用户选择特定行时,为数组中的特定行添加所需的详细信息,然后使用NSUserDefaults存储更新的数组。
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
[arrRows addObject:[NSString stringWithFormat:@"%@", indexPath]];
[[NSUserDefaults standardUserDefaults] setValue:arrRows forKey:@"arrRows"];
}