2012-03-02 35 views
1

我搜索,但没有找到很好的答案是:iOS:UITableView&Back Button,如何更新父视图中的单元格?

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

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

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

回答

1

尝试使用以下

在子视图,定义一个协议时用户选择的小区

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

在mainViewController

// 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 

发送数据,实现此协议

- (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 

希望它有帮助。

+0

你如何引用父级TableView来重新加载它?在父TableView的selectedData中,你得到了新的字符串,但你如何强制tableView更新它? – Cam 2012-03-06 16:08:05

+0

更新数据源后,可以使用UITableView的reloadData方法。 – vipinagg 2012-03-06 16:44:46

+0

我知道reloadData,但你如何使用它([tableView reloadData])没有访问selectedData中的'tableView'? – Cam 2012-03-06 18:52:16

相关问题