Создайте протокол (DetailViewDelegate
?) И создайте делегат свойство в вашем DetailViewController
.Когда вы создаете экземпляр своего контроллера представления, установите для свойства делегата значение self
и используйте это свойство для отправки сообщений обратно на ваш главный контроллер представления.Единственная сложность заключается в том, что вам нужно объявить свойство делегата как «assign», чтобы не создавать цикл сохранения между подробным представлением и главным представлением.
DetailViewController.h:
@class DetailViewController; // Forward Declaration.
@protocol DetailViewDelegate
- (void)detailViewController:(DetailViewController *)controller didChangeBool:(BOOL)theBool;
@end
@interface DetailViewController : UIViewController {
id <DetailViewDelegate> delegate;
}
@property (assign) id <DetailViewDelegate> delegate;
@end
Это просто интерфейс, но он должен помочь вам в этом.Установите свойство delegate
подробного представления и внедрите метод detailViewController:didChangeBool:
в своем основном представлении, и это все.
Чтобы ответить на вопросы в вашем комментарии:
- Да.Перед тем как нажать контроллер подробного представления, установите для его свойства
delegate
значение self
. - Необходимо объявить, что ваш главный контроллер представления реализует протокол DetailViewDelegate.Узнайте, как это сделать, прочитав Документация Apple .
- После того, как вы объявите, что ваш контроллер главного представления будет реализовывать протокол, вам необходимо его реализовать.Добавьте метод
detailViewController:didChangeBool:
к вашему основному контроллеру представления.