Я знаю, что есть много информации о делегатах в документации Apple dev, а также в других моих книгах, а также в таких ресурсах, как stackoverflow и другие.Но я все еще не понимаю.
Недавно я смотрел лекцию о контроллерах Navigation View и т. Д. В серии Stanford CS193P Winter 2010, и в этой лекции они рассказывают о передаче данных на стек контроллеров представления, что очень просто.Но они вкратце упомянули, что в идеале вы должны использовать делегат / протокол для передачи данных «назад» (например, от контроллера детального просмотра к контроллеру списка), но они не делали демонстрационный или пост-пример кода.
Я прочитал и искал образец этого точного сценария, чтобы я мог обернуться вокруг этого использования делегата / протокола, но не могу найти его.Вот какой-то псевдокод, с которым я играю.Должен ли он достичь передачи данных «назад»?
myListController : UIViewController <SetDataInParent> {
// when pushing detail controller onto stack,
// set DetailController delegate = self
}
myDetailController : UIViewController {
//header file
@protocol SetDataInParent <NSObject>
- (void)willSetValue:(*NSString);
@end
@interface myDetailController {
id <SetDataInParent> delegate;
}
@end
// class/m file
@implementation
@synthesize delegate;
- (void)willSetValue:(*NSString) {
// code here that would take argument
// from detail controller and set
// a value or text field to that
// argument in list controller
}
// send message to list controller class
- [delegate willSetValue:string];
@end
}