更新UITableViewCell';选择单元格时的标签,如iPhone上的设置应用程序

更新UITableViewCell';选择单元格时的标签,如iPhone上的设置应用程序,iphone,uitableview,uinavigationcontroller,Iphone,Uitableview,Uinavigationcontroller,所以我有两个tableView,一个首先显示在弹出窗口中,然后当选择一行时,它会显示另一个tableView作为detailView。然后在detailTableView上进行选择并更新模型。然后,当我返回到原始tableView时,该行的数据不会更新 我有一个UINavigationController作为此popover控制器的contentViewController。当我弹出detailTableView时,我不知道如何更新该单元格的标签。蒂亚 编辑:本质上,我正在尝试做一些类似于设置-

所以我有两个tableView,一个首先显示在弹出窗口中,然后当选择一行时,它会显示另一个tableView作为detailView。然后在detailTableView上进行选择并更新模型。然后,当我返回到原始tableView时,该行的数据不会更新

我有一个UINavigationController作为此popover控制器的contentViewController。当我弹出detailTableView时,我不知道如何更新该单元格的标签。蒂亚

编辑:本质上,我正在尝试做一些类似于设置->位置的事情。当您单击“位置”时,它会显示一个详图视图。如果关闭位置,则主视图显示位置->关闭。如果“位置”处于启用状态,则在主表视图上会显示“位置->打开”。我不知道如何获取对cellForRowAtIndexPath中创建的行的引用,以仅在有意义的情况下更改该行的标签。谢谢

编辑:在下面添加代码

因此,我知道我可以发送通知,但我不知道在返回mainTableView时如何更新该特定单元格,因为我没有对该单元格的引用。谢谢

在my CellForRowatineXpath中:

else if ([indexPath section] == VERSION) {
    cell = [tableView dequeueReusableCellWithIdentifier:@"VersionCell"];
    if (cell == nil) {
        cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleValue1 reuseIdentifier:@"VersionCell"] autorelease];
    }
    NSArray *array = [[dmgr VersionDictionary] allKeysForObject:[NSNumber numberWithBool:YES]];
    cell.textLabel.text = [array objectAtIndex:0];
    cell.accessoryType = UITableViewCellAccessoryDisclosureIndicator;
}

为什么不从detail view发送一个委托并更新第一个table view呢?您可以通过将popover tableVC传递到detail中,将两个TableView控制器连接在一起,以便detail可以通知popover数据已更改

您可以让popover tvc注册通知,并让详细信息tvc发布该通知。popover收到后会重新加载


您可以让popover tvc作为KVO监听器,监听实际发生变化的模型数据,并在发生变化时重新加载。

我们可以看一个屏幕截图吗?我被布局搞糊涂了。我理解你建议的通知模式。我想我缺少了如何更新表中单元格的基本内容。比如如何访问表中的特定单元格,因为它是在CellForRowatineXpath中创建的。[myTableView reloadData]将重新加载整个表。或者,您必须知道要更新哪个indexPath(行)。如果您知道行或indexPath,那么可以通过以下方式获取单元格:UITableViewCell*myCell=[myTableView cellforrowatinexpath];然后你可以用任何你想要的方式更新它的内容。