在使用故事板时,我的团队成员有两种不同的方法:
方法1:使用每个按钮绑定唯一操作,即:
OR
方法2:将单个操作绑定到多个按钮,即:
然后在commonButtonAction中,他们更喜欢使用这样的switch case:
- (IBAction)commonButtonAction:(id)sender
{
UIButton *button = (UIButton *)sender;
switch (button.tag) {
case 201: // done button
[self doneButtonAction:sender];
break;
case 202: // cancel button
[self cancelButtonAction:sender];
break;
default:
break;
}
}
- (void)cancelButtonAction:(id)sender
{
// no interesting stuff, simple dismiss of view :-(
}
- (void)doneButtonAction:(id)sender
{
// some interesting stuff ;-)
}
他们给出遵循方法2的推理是 - 在每个视图控制器中,在代码遍历过程中,任何人都可以轻松识别在何处查找与按钮操作相关的代码。
虽然其他人放弃了这个想法,因为他们说添加一个额外的开关盒是不必要的,这不是一种常见的做法。
您有什么看法?
答案 0 :(得分:1)
嗯,方法2似乎浪费了我的代码。如果你使用单独的方法分别使用单独的按钮,你也可以直接连接它们,对吧?
如果你没有在每个按钮上使用单独的方法(如果按钮逻辑最多只有一行或两行),我可以想象在通用按钮方法中使用switch语句。 但出于可读性目的,我建议直接实施特定的IBAction,即方法1 。
- (IBAction) cancelButtonAction:(id)sender
- (IBAction) doneButtonAction:(id)sender