段控制不会更改按钮

时间:2013-12-07 15:46:19

标签: ios uisegmentedcontrol

我有段控制代码:

-(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 怎么解决?

1 个答案:

答案 0 :(得分:1)

每次切换分段控件时,代码会将目标/操作添加到按钮。请注意添加,而不是替换。

因此,当您从+000切换到+111并返回时,该按钮现在已添加 目标/操作,并且将同时调用call1:call2:方法。

在添加目标/操作之前,您应该使用removeTarget:action:forControlEvents:删除添加到按钮的上一个目标/操作。