我的应用程序中有UISwitch IBAction,它是:
- (IBAction)nearMeSwitchAction:(UISwitch *)sender {
if(nearMeSwitch.isOn)
[self getLocation];
[self myMethod];
}
- (void) getLocation
{
my code...
[nearMeSwitch setOn:NO animated:YES];
}
在我的getLocation
方法中,我使用了[nearMeSwitch setOn:NO animated:YES]
,当我点击我的开关时再次调用nearMeSwitchAction
。因此myMethod
被调用两次。我不想那样。当我从nearMeSwitchAction
关闭切换时,我不想执行getLocation
。还有其他方法可以实现这个目标吗?
答案 0 :(得分:1)
当您更改nearMeSwitchAction
值时,您无法阻止UISwitch
被调用,但您可以阻止myMethod
被调用。创建一个Bool
属性,如isFromGetLocation
,如果true
,则不调用该方法。
- (IBAction)nearMeSwitchAction:(UISwitch *)sender {
if(nearMeSwitch.isOn)
[self getLocation];
if(isFromGetLocation)
//For next time
isFromGetLocation = NO;
else
[self myMethod];
}
- (void) getLocation
{
//my code...
isFromGetLocation = YES;
[nearMeSwitch setOn:NO animated:YES];
}