我有一个详细视图,其中包含一个包含几行数据的表视图。我可以很好地填充行,并且从父视图到子视图来回移动也可以。此详细视图应允许用户选择单个值,在单元格中放置一个复选标记附件,然后返回到父视图(其中所选值将成为从中调用详细信息视图的单元格的cell.textLabel.text属性) )。这一切现在都有效。
然而,当用户点击父视图中的单元格以返回详细视图(更改他们的选择)时,我的复选标记已经消失,我不能为我的生活找出如何让它留下来。< / p>
这是我的cellForRowAtIndexPath:方法:
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
static NSString *CellIdentifier = @"Cell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:CellIdentifier] autorelease];
}
NSString *labelText = [[phones objectAtIndex:indexPath.row] valueForKey:@"phoneNumberLabel"];
cell.textLabel.text = labelText;
NSString *currentLabel = [ruleBuilder.tableView cellForRowAtIndexPath:selectedIndexPath].textLabel.text;
if (labelText == currentLabel) {
cell.accessoryType = UITableViewCellAccessoryCheckmark;
}
NSString *detailText = [[phones objectAtIndex:indexPath.row] valueForKey:@"phoneNumber"];
cell.detailTextLabel.text = detailText;
return cell; }
我在Table View编程指南中检查了Apple的独占列表管理示例代码,但该代码段似乎不完整,我在Apple的示例代码中找不到相关代码。这似乎不应该那么难。
答案 0 :(得分:0)
哎呀......问题出在这一行:
if (labelText == currentLabel) {
比较两个字符串是这样的:
if ([labelText isEqualToString:currentLabel]) {
立即解决了这个问题。