iOS:UITableView&后退按钮,如何在父视图中更新单元格?

时间:2012-03-02 16:08:54

标签: ios uinavigationcontroller uitableview

我搜索过,但没有找到好的答案:

它应该非常简单,我从父TableView导航到子TableView,它只实现父视图中单元格的选择选项。

在childTableView中,我想将子视图中用户选择的值(在此视图中选择一个单元格)传递给父视图,并在父视图中更新“cell.detailTextLabel.text”,我可以找到当子视图中的后退按钮被点击但无法找到如何/在何处更新父视图中的单元格,并从子视图的单元格中获取新值。

我的第二个问题是如何将数据传递给父视图。

1 个答案:

答案 0 :(得分:1)

尝试以下

在子视图中,定义协议

// childViewController.h
@protocol ChildDelegate;

@interface childViewController
{
    id <ChildDelegate> delegate;
}

@property (nonatomic, weak) id <ChildDelegate> delegate;
@end // interface

@protocol ChildDelegate <NSObject>
    - (void) selectedData: (NSString*) text;
@end

用户选择单元格时发送数据

// childViewController.m
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
    ...
    ...
    // send info the mainViewController
    [self.delegate selectedData: (NSString*) [dataSource objectAtIndex: indexPath.row]];
}

在mainViewController中,实现此协议

- (void) selectedData: (NSString*) text
{
   // retrieve current selected row, and update with text.
}

//在创建childViewController

时不要忘记设置委托
child = // create child
child.delegate = self;
// save currently selected row
// push childViewController

希望它有所帮助。