2012-01-02 54 views
1

我在UITableView上创建了,其中点击任何单元(-didSelectRowAtIndexPath)调用与该单元关联的WebService。在哪里写WebService的请求

问题是处理JSon响应,请求返回。 我应该从哪里处理该响应?

随着视图被改变,当我点击表格的单元格时(-didSelectRowAtIndexPath);我必须将所有回复信息传递给下一个视图。

问题是:是否应该在点击单元格之后以及下一个视图加载之前调用服务。或坚持这种方式(这使我的代码无法管理。)

哪个事件最适合处理此问题,(-didSelectRowAtIndexPath)或(-viewDidLoad)下一个视图?

有什么建议吗?
谢谢。

回答

1

选择一行后,分配NextViewController。通过在NextViewController中编写setter方法通知NextViewController该行已被选中。在那个setter方法中,开始你的请求。然后推送到NextViewController。

您可以像在当前显示的那样处理NextViewController中的webrequest,您可以根据响应重新加载视图。

编辑

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { NextViewController *detailViewController = [[NextViewController alloc] initWithNibName:@"NextViewController" bundle:nil]; 
    id obj = [_list objectAtIndex:indexPath.row]; 
    //[detailViewController startWebRequest]; 
    [detailViewController startWebRequestWithObject:obj]; 
    [self.navigationController pushViewController:detailViewController animated:YES]; 
    [detailViewController release]; 
} 

如果您需要传递任何对象,把它传递给方法。在该方法中,启动webrequest。并处理NextViewController中的响应。

+0

请您详细说明一下,我很困惑。 – viral 2012-01-03 05:30:55

+0

我已经更新了我的答案。请看看。 – Ilanchezhian 2012-01-03 05:52:24

+0

对不起:),但我的NextView是在响应完成之前获取加载的。问题是我需要根据该响应来设计我的用户界面。有任何想法我该怎么做? – viral 2012-01-03 06:48:23