怎么能看到总是选中tableView行? (苹果手机)

时间:2010-03-09 13:52:55

标签: iphone objective-c row tableview selected

我有问题与tableView选择行。当我选择它所选择的行时,但当我回到上一个导航控制器时,该行被取消选择。我可以这样做iPhone记得选择了什么行,当我按下控制器时它会记住所选择的行,它可以是蓝色吗?

2 个答案:

答案 0 :(得分:1)

对象通常“记住”事物的方式是将它们存储在实例变量中。因此,跟踪所选行的简单方法是向列表控制器添加实例变量和类型NSIndexPath *的属性。然后,您可以使用该属性存储传递给表视图控制器的-tableView:didSelectRowAtIndexPath:方法的indexPath。

然后您的列表控制器可以覆盖继承的-viewWillAppear:方法,将消息发送到表视图以重新选择该行,如下所示:

- (void)viewWillAppear:(BOOL)animated
{
    [super viewWillAppear:animated];

    // Good idea to reload the table view's cells
    // in case the underlying data was changed by
    // another view controller.
    [[self tableView] reloadData];

    // Assuming you added a selectedIndexPath property
    // to your list controller...
    //
    if ([self selectedIndexPath] != nil)
    {
        // Select the row. Note that you need to be sure
        // that the table view is scrolled so that the
        // selected row is visible.
        [[self tableView] selectRowAtIndexPath:[self selectedIndexPath]
                                      animated:NO
                                scrollPosition:UITableViewScrollPositionMiddle];
        // Get rid of the saved selection
        [self setSelectedIndexPath:nil];
    }
}

答案 1 :(得分:0)

我建议通过将选定的行索引保存到文件(info.plist?properties.plist)来维护iPhone中的状态。然后,当您返回到该视图时,从文件中返回选定的行并更改选定的行索引。