我目前正在开发一款iPad应用程序。出于商业原因,设备上不会有任何数据持久性。将根据需要使用NSURLConnection
从后端服务器访问数据。我开发了一个“模型”对象,它可以进行所有网络访问。 UI具有拆分视图控制器,其中UINavigationControlller
内的表视图控制器作为根控制器。用户将深入查看表视图控制器以最终加载详细视图控制器。 ViewControllers表在将模型对象加载到UINavigationController
时传递对模型对象的引用,以便它们可以从模型中动态生成表视图单元的一部分。为了响应,每个表视图控制器将自身设置为视图中将显示模型对象的委托,并且当选择单元格时,查询模型对象,模型对象又通过委托方法更新UI。
我的问题是设置和取消设置数据模型委托的最佳位置在哪里?目前我在ViewWillAppear中设置委托并在导航控制器后立即将其设置为nil: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];
这是否合适?你能想到这种模式的任何问题吗?该计划非常敏感,我认为这些文书没有任何问题。有更好的方法吗?。
很抱歉,这个问题很冗长。
答案 0 :(得分:1)
我认为这是一个很好的方法,但有几点需要考虑:
如果它适用于您的情况并且已经做出决定不坚持我认为您会没事的。