Iphone 将事件分派到父视图

Iphone 将事件分派到父视图,iphone,objective-c,events,Iphone,Objective C,Events,我有一个ViewController,它有一个按钮,当按下该按钮时,会从nib添加一个子视图。我有以下行动: - (IBAction) addTooltip { if (self.tooltip == nil) { NSArray *nib = [[NSBundle mainBundle] loadNibNamed:@"Tooltip" owner:self options:nil]; self.tooltip = [nib objectAtIndex:0

我有一个ViewController,它有一个按钮,当按下该按钮时,会从nib添加一个子视图。我有以下行动:

- (IBAction) addTooltip {
    if (self.tooltip == nil) {
        NSArray *nib = [[NSBundle mainBundle] loadNibNamed:@"Tooltip" owner:self options:nil];
        self.tooltip = [nib objectAtIndex:0];
        self.tooltip.frame = CGRectMake(20, 190, 260, 200);
    }
    [self.view addSubview:tooltip];
}

在这个nib中,我有另外两个按钮,但我想在我的ViewController中捕捉它们的动作。可能吗?或者最好的方法是什么?工具提示属于工具提示类型,因此我为它设置了一个类。

嗯,使用代理?将委托方法添加到ViewController中,并在工具提示中添加一个方法,用于设置要向其发送操作的委托


将其视为工具提示上有一个插头,ViewController上有一个插座。添加工具提示时,您正在将其插入ViewController,以便他们可以相互了解。

在工具提示笔尖中,您可以将笔尖的所有者设置为您的ViewController,并将按钮操作连接到ViewController

编辑:

在InterfaceBuilder中,您可以将“文件所有者”所有者的类设置为
视图控制器的自定义类。为此,

  • 在IB中,在文档窗口中(⌘0),单击“文件所有者”
  • 在身份检查器中(⌘4) ,将类设置为自定义类(只需键入名称)
  • 右键(控制)单击文档窗口中的“文件所有者”以查看类的声明操作和出口

  • 我在最初的函数和工作中添加了这一行

    [self.tooltip.butCancel addTarget:self action:@selector(removeTooltip:) forControlEvents:UIControlEventTouchUpInside];
    

    如果有更好的方法,请给出一些例子,我不知道如何使用代理。谢谢。

    我想我已经将所有者添加到我的viewcontroller(所有者:self)中了,我看不到其他地方可以这样做。但问题是如何将按钮从工具提示笔尖连接到ViewController笔尖?这似乎是不可能的。最简单的方法是使用IB。我编辑了我的原始答案,以明确它是如何工作的。