[英]Design pattern for sharing a network data model between ViewControllers
我目前正在開發iPad應用程序。 由於業務原因,設備上不會存在任何數據持久性。 可以根據需要使用NSURLConnection
從后端服務器訪問數據。 我已經開發了一個“模型”對象,可以進行所有網絡訪問。 UI有一個拆分視圖控制器,在UINavigationControlller
內部有一個表視圖控制器作為根控制器。 用戶將在表視圖控制器上向下鑽取以最終加載詳細視圖控制器。 表格Viewcontroller被加載到UINavigationController
時,正在傳遞對模型對象的引用,以便它們可以從模型動態生成表格視圖單元的部分。 為了響應,每個Table View控制器將自身設置為視圖中Model對象的委托,並在選擇單元格時查詢模型對象,后者又通過委托方法更新UI。
我的問題是設置和取消設置數據模型的委托的最佳位置在哪里? 目前,我在ViewWillAppear中設置了委托,並在導航Controller:pushViewController:Animated之后立即將其設置為nil。
// 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];
這樣合適嗎 您能想到這種模式的任何問題嗎? 該程序反應迅速,我在儀器中看不到任何問題。 有一個更好的方法嗎?。
抱歉,這個問題已經解決了。
我認為這是一種不錯的方法,但是需要考慮以下幾點:
如果它適合您的情況,並且已決定不堅持下去,那么我認為您會好的。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.