У меня в приложении три контроллера вида, отправленных на контроллер навигации. Когда я на третьем контроллере представления, я хочу отправить сообщение первому. Я думаю, что делегат - это путь сюда, но я не могу установить его правильно.
В h-файле моего третьего вида контроллера у меня есть это:
@protocol AddSudokusViewControllerDelegate
- (void)saveSudoku:(Sudoku *)sudoku;
@end
@interface [...]
id<AddSudokusViewControllerDelegate> delegate;
[...]
@property (nonatomic, retain) id<AddSudokusViewControllerDelegate> delegate;
Затем я синтезирую его в файле .m.
В моем первом контроллере вида у меня есть (.h):
@interface SudokusViewController : UITableViewController <AddSudokusViewControllerDelegate>{
[...]
}
- (void)saveSudoku:(Sudoku *)sudoku;
Пока все хорошо, я думаю. Теперь я хочу установить делегат третьего контроллера представления первым при создании его во втором контроллере. Я думал, что смогу сделать это так, но это не работает.
sudokuDetailViewController = [[SudokuDetailViewController alloc] init];
[sudokuDetailViewController setDelegate:[[self navigationController] parentViewController]];
[[self navigationController] pushViewController:sudokuDetailViewController animated:YES];
Правильно ли я делаю это или есть другой подход, когда у вас есть три таких контроллера?
С наилучшими пожеланиями
Линус