我是iOS开发的新手。我想知道如何将数据从同一个tableview传回两个不同的视图控制器。
这是我的电子方法:
-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
sendarea = [tableData objectAtIndex:indexPath.row];
Step2ClassifiedViewController *parentViewC = [self.navigationController.viewControllers objectAtIndex:self.navigationController.viewControllers.count - 2];
parentViewC.areareceive = sendarea;
[self.navigationController popViewControllerAnimated:YES];
}
但这仅适用于一种观点。如果我使用相同的表,我有另一个视图也需要传回数据。那可能吗?或者我只需要创建另一个表?
答案 0 :(得分:0)
您可以使用同一张桌子。只需要更改数据源。并且可以调用每个 didSelectRowAtIndexpath
这就像,出租车司机用他的一辆出租车载客。当他的出租车空着时,他可以搭载乘客。
答案 1 :(得分:0)
-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
sendarea = [tableData objectAtIndex:indexPath.row];
if(state == 1){
Step2ClassifiedViewController *parentViewC = [self.navigationController.viewControllers objectAtIndex:self.navigationController.viewControllers.count - 2];
parentViewC.areareceive = sendarea;
[self.navigationController popViewControllerAnimated:YES];
}
else if (state == 2){
//get your other View Controller and set data before pop to that view controller.
NSArray *viewControllers = [[self navigationController] viewControllers];
for(UIViewController *vc in viewControllers){
if([vc isKindOfClass:[OtherViewController class]]){
OtherViewController *otherVC = (OtherViewController*)vc;
otherVC.areareceive = sendarea;
[[self navigationController] popToViewController:otherVC animated:YES];
}
}
}
else{
//load any View Controller you want
}
}
根据您的问题和评论,我假设您希望根据不同的状态加载不同的View Controller并传递数据。
以上是这样做的一种方式。但是,您也可以将委托用于您的目的,这将是一个很好的编程实践。