我希望我的应用程序像iOS上的“联系人”应用程序一样工作。当用户选择某个TableViewCell时,我想加载某些数据。
无论哪个细胞被按下,无论是“约瑟夫,理查德还是香农”,这个观点出现了:
两个视图看起来完全相同,但它们只显示不同的信息。所以我想我的问题是:如何使用NSUserDefaults为每个单元格以编程方式设置密钥@“cell1”@“cell2”等等?但是这里有捕获,我不知道会添加多少个单元格,所以我不能对此进行硬编码,如何为每个表格视图单元格创建一个键,以便添加多少?谢谢你的帮助!
答案 0 :(得分:2)
如果您仍然坚持使用NSUserDefaults
,请尝试以下方法:
NSUserDefaults * prefs = [NSUserDefaults standardUserDefaults];
cellNumber = [prefs objectForKey:[NSString stringWithFormat:@"cell%d", index]];
然后,您可以保存最大索引,以便确切知道必须显示多少UITableViewCells
。
请确保NSUserDefaults
存储空间不足,因此您可能无法存储所有信息。您可以找到更多详细信息here。
希望有帮助!
答案 1 :(得分:1)
也许您不想使用NSUserDefaults
....它仅用于持久性用户信息,例如首选项。最好将Core Data用于此类事情。
由于您要标记视图,因此一个想法是在单元格出列期间使用-[UIView setTag:]
上的UIView.tag
或UITableViewCell
属性/方法。使用UITableView
委托方法,您可以检测单元格上的点按,检索其标记,然后查找NSUserDefaults
或更好的数据库。
首选方法是保留索引数据库,使单元格出列,以及在单击时,使用单元格索引导航到详细信息窗格。这是一个更具代表性的编程模型,而不是标记视图并使用NSUserDefaults
来提取数据。
答案 2 :(得分:0)
您可以通过创建NSMutableDictionary来存储每个单元格的键/值对,而不是将其存储在NSUserDefaults中
NSMutableDictionay *dict = [[NSMutableDictionary alloc] init];
[[NSUserDefaults standardUserDefaults] setObject:dict forKey:@"myKey"];
[dict release];
,您可以随时使用单元格值更新字典:
NSMutableDictionary *dict = [[NSUserDefaults standardUserDefaults] objectForKey:@"myKey"];
[dict setValue:aNameforThisCell forKey:[NSString stringWithFormat@"cell%d", indexPath.row]];