嘗試使用以下
在子視圖,定義一個協議時用戶選擇的小區
// 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