从tableview中选择多个项目 - 初学者

时间:2011-09-13 17:19:24

标签: iphone objective-c nsmutabledictionary

我需要添加TableView,我应该可以点击tableview中的多个项目并将其保存到NSMutable dictionary或其他合适的项目。

我知道您必须使用NSMutable Dictionary。但我不明白该怎么做。

有人可以指出一个好的教程或为我提供一些示例代码。

5 个答案:

答案 0 :(得分:0)

你必须使用委托方法。
首先确保您的表格视图设置得很好(delegatedatasource),然后再确定 实施代表:
(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath

您可以使用[indexPath row]访问所选行索引 然后你可以存储这个值。

答案 1 :(得分:0)

这是Matt Gallagher在Cocoa With Love关于此事的一篇文章,你可能会觉得这很有启发性。

有点过时了,但原则是一样的。

答案 2 :(得分:0)

您可以在此方法中使用NSMutableDictionary

(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
    NSMutableDictionary *dict = [NSMutableDictionary alloc] init];
    [dict setObject:[NSString stringWithFormat:"%@", cell.Label.text] forKey:[NSString stringWithFormat:"Key%d", indexPath.row]];
}

答案 3 :(得分:0)

这实际上取决于您的数据模型。 首先,您需要一个NSMutableArray而不是NSMutableDictionary;

//declare an NSMutableArray in the interface
@interface Class : SuperClass {
NSMutableArray *_arrayWithMySelectedItems;
}

//in one of your init/preparation methods alloc and initialize your mutable array;

- (void)viewDidLoad {
[super viewDidLoad];

_arrayWithMySelectedItems = [NSMutableArray alloc] init];
}

//now before you forget it add release in your dealloc method

- (void)dealloc {
[_arrayWithMySelectedItems release];

[super dealloc];
}

//add this following code to your didSelect Method part of tableView's delegate

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
//if you have only one category, you will probably have something like this
[_arrayWithMySelectItems addObject:[dataModelArray objectAtIndex:indexPath.row];
[tableView deselectRowAtIndexPath:indexPath animated:YES];
}

答案 4 :(得分:0)

在tableview的didselect行中声明一个字符串然后给出string = [你的填充数组objectAtIndex:indexpath.row];然后根据你的意愿将它添加到字典或nsmutable数组中。