gpt4 book ai didi

iphone - 为 UIViewController 建立委托(delegate)

转载 作者:行者123 更新时间:2023-12-03 19:11:59 24 4
gpt4 key购买 nike

我查遍了所有地方,发现很多人都有类似的问题,但我仍然无法让我的委托(delegate)工作。我想弹出一个 Model View Controller ,然后在 View 中调用一个方法,该方法使模型 View 要求它关闭它。所以我有这一行:

mergeConfig *view = [[mergeConfig alloc] initWithNibName:@"mergeConfig" bundle:nil];

我正在尝试[view setDelegate:self];,如 apple's developer pages, 上所述但预计我的模型 View 没有 setDelegate 方法。

所以我想知道的是,如何获得它以便我可以设置委托(delegate)?然后,一旦我这样做了,它是否会自动将对方法的调用传递给父 View 中具有相同名称的方法? Apple 的页面没有说明要在 Model View Controller 中放入哪些代码。

最佳答案

您需要在自定义 View Controller 上定义委托(delegate),如下所示:

@interface mergeConfig {
id delegate;
}
@property (nonatomic, assign) id delegate;
@end

@implementation mergeConfig
@synthesize delegate;
@end

然后,在 View Controller 类的其他位置,您可以调用委托(delegate)上所需的任何方法。

我个人喜欢通过定义我的委托(delegate)遵守的协议(protocol)来改进上述内容,如下所示:

@protocol MyDelegateProtocol
- (void)delegateMethod;
@end

@interface mergeConfig {
id<MyDelegateProtocol> delegate;
}
@property (nonatomic, assign) id<MyDelegateProtocol> delegate;
@end

@implementation mergeConfig
@synthesize delegate;
@end

关于iphone - 为 UIViewController 建立委托(delegate),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7087467/

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