尝试使用以下
在子视图,定义一个协议时用户选择的小区
// 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
希望它有帮助。
你如何引用父级TableView来重新加载它?在父TableView的selectedData中,你得到了新的字符串,但你如何强制tableView更新它? – Cam 2012-03-06 16:08:05
更新数据源后,可以使用UITableView的reloadData方法。 – vipinagg 2012-03-06 16:44:46
我知道reloadData,但你如何使用它([tableView reloadData])没有访问selectedData中的'tableView'? – Cam 2012-03-06 18:52:16