ios – 如何从子级到父级创建委派(subview-superview)

ios – 如何从子级到父级创建委派(subview-superview),第1张

概述我之前和代表团合作过.我知道如何创建从superview到子视图类的委托.但是,我试图用相反的方式使用相同的方法,但它不起作用!委托只是为了单向工作,还是有办法/技巧将它用作类之间的双向沟通​​?我在父/ superview .h类中收到错误,它是: Cannot find protocol definition for ‘SubViewControllerDelegate’ 我的代码是这样的: 我之前和代表团合作过.我知道如何创建从supervIEw到子视图类的委托.但是,我试图用相反的方式使用相同的方法,但它不起作用!委托只是为了单向工作,还是有办法/技巧将它用作类之间的双向沟通​​?我在父/ supervIEw .h类中收到错误,它是:

Cannot find protocol deFinition for ‘SubVIEwControllerDelegate’

我的代码是这样的:
subvIEw.h

#import <UIKit/UIKit.h>#import "SuperVIEwController.h"@protocol SubVIEwControllerDelegate <NSObject>    - (voID)someMethod:(NSData *)data;@end@interface SubVIEwController : UIVIEwController @property (weak,nonatomic) ID <SubVIEwControllerDelegate> delegate;@end

subvIEw.m:

[self.delegate someMethod:data];

SuperVIEw.h

#import <UIKit/UIKit.h>#import "SubVIEwController.h"@interface SuperVIEwController : UIVIEwController <SubVIEwControllerDelegate>@end

SuperVIEw.m:

#pragma mark - SubVIEw Controller Delegate Methods- (voID)someMethod:(NSData *)data{    NSLog(@"%@",data);}

我做错了什么或错过了什么?

解决方法 你有一个“import-cycle”,因为“SuperVIEwController.h”导入“SubVIEwController.h”,反之亦然.

删除“SubVIEwController.h”中的#import“SuperVIEwController.h”
应该解决问题.

如果您确实需要在“SubVIEwController.h”中声明该类,请使用
 @class SuperVIEwController;避免进口周期.

备注:< SubVIEwControllerDelegate>协议声明可能不是
在公共接口“SuperVIEwController.h”中根本需要.

在“SuperVIEwController.h”中,将类声明为

@interface SuperVIEwController : UIVIEwController

在“SuperVIEwController.m”中,使用协议定义类扩展:

@interface SuperVIEwController () <SubVIEwControllerDelegate>@end
总结

以上是内存溢出为你收集整理的ios – 如何从子级到父级创建委派(subview-superview)全部内容,希望文章能够帮你解决ios – 如何从子级到父级创建委派(subview-superview)所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/1054097.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-25
下一篇 2022-05-25

发表评论

登录后才能评论

评论列表(0条)

保存