无法将子代添加到子视图中

时间:2014-02-11 10:34:57

标签: objective-c

我有一些主要的viewController,我想为它添加一个子视图,作为一个子视图,它也是一个viewController。

我的方法是,当你完成对该子视图的编辑时,他会告诉主视图对委托做一些事情。

  1. 这种方法可以创建许多子视图作为viewcontrollers添加到主视图中,并在发生事件时通过委托通知他,这是一种很好的方法吗?

  2. 为什么我可以在子视图中添加委托监听器?我在子视图中创建了协议,主视图是添加子视图,需要订阅其委托,所以:

  3. UIViewController *search = [[SearchView alloc]init]; //my subview that post delegate
        //[search delete:self]; //can't add delegate here,
        [self addChildViewController:search];
        // search.view.frame = CGRectMake(0, 0, 0, 550);
         [self.view addSubview:search.view];
        [search didMoveToParentViewController:self];
    

2 个答案:

答案 0 :(得分:0)

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

[search delete:self];

在此对象上,而不是在SearchView对象上。如果您在SearchView上添加了委托属性,则需要将声明更改为:

SearchView *search = [[SearchView alloc]init];

另一件事是你在SearchView.h文件中添加了委托,如:

@property(assign)YOURDEL代表; 你应该致电:

[search setDelete:self];

而不是:

[search delete:self];

答案 1 :(得分:0)

试试这个

SearchView *search = [[SearchView alloc]init]; //my subview that post delegate
[search setDelegate:self]; // or search.delegate = self;

此外,您还需要为子视图中的操作创建协议及其所需的方法。不要忘记在主视图界面中添加委托。

希望这可能会解决您的问题