如何解决将委托设置为父视图控制器
| 我的应用程序中有三个视图控制器,已推送到导航控制器。当我在第三个视图控制器上时,我想向第一个发送消息。我认为代理人可以去这里,但是我无法正确设置它。 在我的第三个视图控制器的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];
当您拥有三个这样的控制器时,我是用正确的方式执行操作还是使用另一种方法?
最好的祝福
莱纳斯
解决方法
尝试这个,
sudokuDetailViewController.delegate = [self.navigationController.viewControllers objectAtIndex:0];
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。