Я сейчас занимаюсь разработкой приложения для iPad. По деловым причинам не будет никакого сохранения данных на устройстве. Данные будут доступны с внутреннего сервера по мере необходимости, используя NSURLConnection
. Я разработал «модельный» объект, который осуществляет сетевой доступ. Пользовательский интерфейс имеет контроллер разделения представления с контроллером представления таблицы внутри UINavigationControlller
в качестве корневого контроллера. Пользователь будет детализировать контроллер табличного представления, чтобы в конечном итоге загрузить контроллер подробного представления. Табличные контроллеры передают ссылку на объект модели, когда они загружаются в UINavigationController
, чтобы они могли динамически генерировать части ячейки табличного представления из модели. Чтобы быть отзывчивым, каждый контроллер табличного представления устанавливает себя в качестве делегата объекта Model в представлении, и при выборе ячейки запрашивает объект модели, который, в свою очередь, обновляет пользовательский интерфейс через метод делегата.
Мой вопрос: где лучшее место для установки и отмены делегата модели данных? В настоящее время я устанавливаю делегата в ViewWillAppear и устанавливаю его равным нулю сразу после навигации. Контроллер: 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];
Это уместно? Не могли бы вы подумать о любых проблемах с этим шаблоном. Программа очень отзывчива, и я не вижу никаких проблем в инструментах. Есть ли лучший способ сделать это?
Извините, что этот вопрос долго задавался.