gpt4 book ai didi

objective-c - 将委托(delegate)设置为父 View Controller

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:53:46 24 4
gpt4 key购买 nike

我的应用程序中有三个 View Controller 被推送到导航 Controller 。当我在第三个 View Controller 上时,我想向第一个 View Controller 发送消息。我认为代表是前往此处的方式,但我无法正确设置它。

在我的第三个 View Controller 的 h 文件中,我有这个:

@protocol AddSudokusViewControllerDelegate

- (void)saveSudoku:(Sudoku *)sudoku;

@end

@interface [...]

id<AddSudokusViewControllerDelegate> delegate;

[...]

@property (nonatomic, retain) id<AddSudokusViewControllerDelegate> delegate;

然后我在.m文件中合成它。

在我的第一个 View Controller 中,我有这个 (.h):

@interface SudokusViewController : UITableViewController <AddSudokusViewControllerDelegate>{
[...]
}
- (void)saveSudoku:(Sudoku *)sudoku;

到目前为止,我认为还不错。现在我想在第二个 Controller 中创建它时将第三个 View Controller 的委托(delegate)设置为第一个。我以为我可以这样做,但它不起作用。

sudokuDetailViewController = [[SudokuDetailViewController alloc] init];
[sudokuDetailViewController setDelegate:[[self navigationController] parentViewController]];

[[self navigationController] pushViewController:sudokuDetailViewController animated:YES];

当您拥有三个这样的 Controller 时,我这样做的方式是否正确,或者还有其他方法吗?

最好的问候莱纳斯

最佳答案

试试这个,

sudokuDetailViewController.delegate = [self.navigationController.viewControllers objectAtIndex:0];

关于objective-c - 将委托(delegate)设置为父 View Controller ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6174252/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com