Objective c 无法将代理添加到子视图

Objective c 无法将代理添加到子视图,objective-c,Objective C,我有一些主视图控制器,我想添加一个子视图到它,作为一个孩子,这也是一个视图控制器 我的方法是,当您完成编辑该子视图时,他将告诉主视图对委托执行某些操作 将许多子视图创建为添加到主视图中的viewcontrollers,并在出现问题时通过委托通知他,这种方法是一种好方法吗 为什么我不能将委托侦听器添加到我的子视图?我在我的子视图中创建了协议,主视图正在添加一个子视图,需要订阅其委托,因此: UIViewController中没有委托属性,但您调用 [search delete:self]; 在该

我有一些主视图控制器,我想添加一个子视图到它,作为一个孩子,这也是一个视图控制器

我的方法是,当您完成编辑该子视图时,他将告诉主视图对委托执行某些操作

  • 将许多子视图创建为添加到主视图中的
    viewcontrollers
    ,并在出现问题时通过委托通知他,这种方法是一种好方法吗

  • 为什么我不能将委托侦听器添加到我的子视图?我在我的子视图中创建了协议,主视图正在添加一个子视图,需要订阅其委托,因此:


  • UIViewController中没有委托属性,但您调用

    [search delete:self];
    
    在该对象上,而不是在SearchView对象上。如果在SearchView上添加了委托属性,则需要将声明更改为:

    SearchView *search = [[SearchView alloc]init];
    
    另一件事是,如果您在SearchView.h文件中添加了委托,如:

    @属性(分配)您的Del代表; 你应致电:

    [search setDelete:self];
    
    而不是:

    [search delete:self];
    
    试试这个

    SearchView *search = [[SearchView alloc]init]; //my subview that post delegate
    [search setDelegate:self]; // or search.delegate = self;
    
    您还需要为子视图中的操作创建协议及其所需的方法。不要忘记在主视图界面中添加委托


    希望这可以解决您的问题

    非常感谢!它起作用了,我把它改成了searchView,它按预期工作。这种方法正确吗?要将许多视图控制器作为子视图添加到某些主视图中,并且它们都将向他发布委托,通知他何时删除它们/执行其他操作?我更喜欢使用UIView而不是UIViewController,因为它是一个较小的对象。但这完全取决于你的需要。如果您的子视图没有做太多的工作,您可以使用根视图控制器来管理所有uiview子视图,甚至不需要使用委托,但如果子视图逻辑中存在很多问题,您可以使用UIviewCOntroller。
    SearchView *search = [[SearchView alloc]init]; //my subview that post delegate
    [search setDelegate:self]; // or search.delegate = self;