我搜索过,但没有找到好的答案:
它应该非常简单,我从父TableView导航到子TableView,它只实现父视图中单元格的选择选项。
在childTableView中,我想将子视图中用户选择的值(在此视图中选择一个单元格)传递给父视图,并在父视图中更新“cell.detailTextLabel.text”,我可以找到当子视图中的后退按钮被点击但无法找到如何/在何处更新父视图中的单元格,并从子视图的单元格中获取新值。
我的第二个问题是如何将数据传递给父视图。
答案 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
希望它有所帮助。