如何管理单选(独家)列表?

时间:2010-04-09 03:39:12

标签: iphone uitableview

我有一个详细视图,其中包含一个包含几行数据的表视图。我可以很好地填充行,并且从父视图到子视图来回移动也可以。此详细视图应允许用户选择单个值,在单元格中放置一个复选标记附件,然后返回到父视图(其中所选值将成为从中调用详细信息视图的单元格的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的示例代码中找不到相关代码。这似乎不应该那么难。

1 个答案:

答案 0 :(得分:0)

哎呀......问题出在这一行:

if (labelText == currentLabel) {

比较两个字符串是这样的:

if ([labelText isEqualToString:currentLabel]) {

立即解决了这个问题。