我目前正在開發一個iPad應用程序。出於商業原因,不會有任何設備上的數據持久性。數據將根據需要使用NSURLConnection
從後端服務器訪問。我開發了一個可以完成所有網絡訪問的「模型」對象。 UI具有一個分割視圖控制器,其中一個UINavigationControlller
內的表視圖控制器作爲根控制器。用戶將在表格視圖控制器上鑽取以最終加載詳細視圖控制器。表格視圖控制器在將模型對象加載到UINavigationController
時傳遞對模型對象的引用,以便它們可以從模型動態生成表格視圖單元的一部分。爲了響應,每個表視圖控制器將自身設置爲視圖中Model對象的代表將出現,並且在選中單元格時查詢模型對象,然後通過委託方法更新UI。ViewControllers之間共享網絡數據模型的設計模式
我的問題是在哪裏設置的最佳場所和取消委託數據模型的?目前我在ViewWillAppear中設置委託並在導航之後立即將其設置爲nil Controller:pushViewController:Animated。
// Setting the delegate
- (void)viewWillAppear:(BOOL)animated {
// set ourself as the delegate
[[self dataModel] setDelegate:self];
// Get the count of studies
[[self dataModel]GetListOfDiagnosticStudyResultsForID:[[self currentPatient]patientID]];
}
// setting delegate to nil
DiagnosticStudiesViewController *selectedVC = [[DiagnosticStudiesViewController alloc] init];
selectedVC.dataModel = self.dataModel;
[[self dataModel]setDelegate:nil];
[[self navigationController]pushViewController:selectedVC animated:YES];
這是否合適?你能想到這種模式的任何問題。該計劃響應速度很快,我沒有看到儀器中存在任何問題。有一個更好的方法嗎?。
對不起,這個問題是長篇大論。
業務邏輯規定數據不會保留在設備上,因此第三點也得到了解決。關於你的第二點:你能否詳細說明你的思考過程? – Vinod 2011-12-15 20:20:13