2012-01-02 53 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