【发布时间】:2017-02-20 12:29:35
【问题描述】:
我的应用中有 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。有没有其他方法可以做到这一点?
【问题讨论】:
-
显示你的
getLocation -
调用你的方法 [self myMethod];在其他情况下。因为在这两种情况下关闭/打开你的方法都会被调用。
-
更新了我的问题。
-
你必须在 nearMeSwitchAction 方法中执行你想要的,因为在这两种情况下这个方法都会被调用。所以把所有你想在 switch 打开时执行的代码放在 nearMeSwitchAction: 的 If 语句中:在 else 的情况下直接返回。
-
我想在关闭/打开两种情况下都调用我的方法,只是不想在 getLocation 触发它时调用它