iOS UISwitch 动作调用了两次
iOS UISwitch Action called twice
我的应用程序中有 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
被调用了两次。我不想要那个。当我从 getLocation
关闭开关时,我不想执行 nearMeSwitchAction
。还有其他方法可以做到这一点吗?
您无法在更改 UISwitch
值时阻止 nearMeSwitchAction
被呼叫,但您可以阻止 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];
}
我的应用程序中有 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
被调用了两次。我不想要那个。当我从 getLocation
关闭开关时,我不想执行 nearMeSwitchAction
。还有其他方法可以做到这一点吗?
您无法在更改 UISwitch
值时阻止 nearMeSwitchAction
被呼叫,但您可以阻止 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];
}