Передача значений обратно в DetailViewController

Я сделал приложение MasterDetailView. В TableView у меня есть список сотрудников, а в detailView - экран приветствия с информацией о сотрудниках и другими данными. Когда я нажимаю на любого сотрудника, через navigatorController, я вызываю представление с формой, где у меня есть кнопка для загрузки сведений о форме на сервер. Я хочу отобразить загруженную дату на экране приветствия. Я сохраняю дату в userDefaults, но как только я возвращаюсь назад, ни один из моих методов не вызывается, viewDidlLoad или viewDidApper из DetailViewController, так что я могу отобразить загруженную дату на моем экране приветствия. Пожалуйста, помогите мне, как передать значения обратно в DetailViewController.

2 ответа

Вы можете опубликовать NSNotification. Но лучшее решение - это установить отношение делегата между "представлением с формой" и "экраном приветствия", чтобы один из них мог фактически напрямую общаться с другим и передавать значения обратно.

Посмотрите на структуру шаблона проекта Apple "Utility app", чтобы увидеть, как установить отношения делегирования между двумя контроллерами представления.

В приложении MasterDetailView MasterViewController всегда является первым представлением, принадлежащим SplitViewController.

Итак, один из способов обратной связи:

YourMasterViewController * yourMasterViewController = (YourMasterViewController*)[[self.splitViewController.viewControllers objectAtIndex:0] topViewController];
[yourMasterViewController someMethodLikeUploadCompleted];

Я использовал это, чтобы позволить подробным представлениям отправлять сообщения мастеру.

Другие вопросы по тегам