目标C IBOutlets

时间:2009-03-07 16:24:05

标签: iphone objective-c uibutton

如果多个按钮调用IBOutlet,IBOutlet可以确定按下了哪个按钮吗?

编辑:

全部固定和接线。关键点:对象ID不是发件人标签! Tag是属性第一页上的独立值。

- (IBAction)buttonPressed:(id)sender
{
    switch ( [sender tag] )
    {
        case 109:
            NSLog(@"Button 1");
            break;

        case 108:
            NSLog(@"Button 2");
            break;
    }
}

3 个答案:

答案 0 :(得分:5)

  

如果多个按钮调用IBOutlet

也许是IBAction?

如果全部

- (IBAction) actionPerformed:(id)sender

所以,发件人是您的按钮

第二个是UIView的每个子类都有一个标签字段,所以你可以使用它

int tag = [sender tag];

你可以在IB中设置标签

答案 1 :(得分:2)

通常,您可以将按钮事件(Touch Down)连接到您希望在控制器中调用的IBAction方法。

方法原型如下:

-(IBAction) doStuff:(id)sender;

然后,如果需要,可以使用“sender”来验证执行调用的对象的身份。

IBOutlet将用于联系您代码中的UIButton,以设置其文本或属性。

答案 2 :(得分:0)

更好的是,为UI中的每个按钮定义一个IBAction方法。 然后,您可以使用IB单独将按钮连接到方法,并避免将const整数硬编码到代码中。