我有段控制代码:
-(IBAction)sectionswitch:(id)sender {
if (control.selectedSegmentIndex == 0) {
[button addTarget:self action:@selector(call1:) forControlEvents:UIControlEventTouchUpInside];
[button setTitle:@"+000000000000" forState: UIControlStateNormal] ;
}
if (control.selectedSegmentIndex == 1) {
[button addTarget:self action:@selector(call2:) forControlEvents:UIControlEventTouchUpInside];
[button setTitle:@"+111111111111" forState: UIControlStateNormal] ;
}
}
- (IBAction)call1:(id)sender {
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"tel://+000000000000"]];
}
- (IBAction)call2:(id)sender {
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"tel://+111111111111"]];
}
但是当我更改分段控制按钮时,请始终呼叫+111111111111 怎么解决?
答案 0 :(得分:1)
每次切换分段控件时,代码会将目标/操作添加到按钮。请注意添加,而不是替换。
因此,当您从+000切换到+111并返回时,该按钮现在已添加 目标/操作,并且将同时调用call1:
和call2:
方法。
在添加目标/操作之前,您应该使用removeTarget:action:forControlEvents:
删除添加到按钮的上一个目标/操作。