所以在我正在构建的iPhone应用程序中,我有两个按钮将被指定为“选择1”和“选择2”,供用户选择他们的日期和时间(例如,安排预约)。
选择1有一个ActionSheet来显示日期,并设置为当用户点击“已选择”时,它会自动转到我所拥有的另一个显示两次的方法(作为NSArray类)。 / p>
我的问题是,我想保留这两种方法,但是使用名为“button1Clicked”的方法调用两种方法,并对“button2Clicked”执行相同的操作。有任何想法吗?我非常愿意提供我现有的代码。谢谢!
我找不到已经回答但如果有人知道这是否确实在网站上得到了解答,你可以提供链接吗?那将不胜感激!
请轻松,我还是初学者:)
答案 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
}