两个“选择”按钮,使用相同的方法

时间:2011-04-13 19:09:08

标签: iphone xcode ios4 methods

所以在我正在构建的iPhone应用程序中,我有两个按钮将被指定为“选择1”和“选择2”,供用户选择他们的日期和时间(例如,安排预约)。

选择1有一个ActionSheet来显示日期,并设置为当用户点击“已选择”时,它会自动转到我所拥有的另一个显示两次的方法(作为NSArray类)。 / p>

我的问题是,我想保留这两种方法,但是使用名为“button1Clicked”的方法调用两种方法,并对“button2Clicked”执行相同的操作。有任何想法吗?我非常愿意提供我现有的代码。谢谢!

我找不到已经回答但如果有人知道这是否确实在网站上得到了解答,你可以提供链接吗?那将不胜感激!

请轻松,我还是初学者:)

2 个答案:

答案 0 :(得分:2)

好吧,你可以为每个按钮添加一个'tag'属性,然后在第一个方法的开头,检查发送者的标签值,以便你知道哪个被点击了。这样您就不需要复制任何代码了。那是你想要做的,还是我误解了你的目标?

答案 1 :(得分:0)

你能澄清一下你的问题吗?您是否在询问如何编写包含其他方法调用的方法?或者你在问一个如何连接一个方法来按下按钮?或者你在问如何让两个按钮调用不同的方法,然后调用两个首先提到的方法?

一种处理多个按钮的方法:

方法A:

- (IBAction)onSomeClick:(id)sender {

    // return if sender is not a button
    if (![sender isKindOfClass:[UIButton class]])
        return;

    NSString *title = [(UIButton *)sender currentTitle];
    if(title == @"Choice 1")
        // call choice 1 methods here
    else if(title == @"Choice 2"
        // call choice 2 methods here
}

方法B:

-(IBAction)onButtonPress:(id)sender{ 
     // if you have the logic for differentiating between 
     // the sender in the showActionSheet method, no need
     // for it here, just send the sender as the param
     [self showActionSheet:sender];         

     // call another method here also if appropriate
     // .. or as needed call it from within the showActionSheet method
}

// note how this does not need the IBAction return. This method doesn't need to be 
// hooked up via Interface Builder
-(void)showActionSheet:(id)sender{
     // here you can do your differentiation logic if you need it
}