将事件分派给父视图

时间:2010-02-02 19:13:25

标签: 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];
        self.tooltip.frame = CGRectMake(20, 190, 260, 200);
    }
    [self.view addSubview:tooltip];
}

在这个笔尖我有其他2个按钮,但我想在我的ViewController中捕捉他们的动作。可能吗?或者如何做到这一点的最佳方法?工具提示是Tooltip类型,所以我有一个类。

3 个答案:

答案 0 :(得分:1)

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

修改

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

  1. 在IB中,在文档窗口(⌘0)中,单击“文件所有者”,
  2. 在Identity Inspector(⌘4)中
  3. ,将Class设置为您的自定义类(只需键入名称),
  4. 右键(控制)点击文档窗口中的“文件所有者”,查看班级声明的操作和出口。

答案 1 :(得分:0)

嗯,请使用代表?向ViewController添加委托方法,并在工具提示中添加一个方法,设置委托将动作发送到。

把它想象成工具提示上的插件和ViewController上的插座。当您添加工具提示时,您将其插入ViewController,以便他们可以相互了解。

答案 2 :(得分:-1)

我在初始函数中添加了这一行并且正常工作

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

如果还有更好的方法,请举一些例子,我不明白如何使用代表。感谢。