【发布时间】:2012-11-06 16:35:18
【问题描述】:
我正在尝试使用 [self.mySwitch setOn:YES animated:YES]; 方法动态更改 UISwitch
代码中的状态也发生了变化,因此机制工作正常,但在视图中状态没有改变。所以我得到一个 UISwitch 显示为 OFF 并像 ON 一样工作。
当我点击它时,开关变为 ON。所以我必须点击它两次才能启动代码的 inCaseOff 部分。
我希望这已经足够清楚了。
[编辑]
这是你问的代码
- (void)viewDidLoad
{
[self manageTheSwitch];
}
- (void) manageTheSwitch{
self.mySwitch = [[UISwitch alloc]init];
if(randomObject != nil){
[self.mySwitch setOn:YES animated:YES];
}else{
[self.mySwitch setOn:NO animated:YES];
}
}
【问题讨论】:
-
尝试检查您是否更新了主线程上的开关状态。无论如何,您提供的信息太少,无法帮助您,可以发布更多代码吗?
-
您是否将此开关添加到您在 IB 或代码中的视图中?
-
我意识到我的错误。我不应该重新分配 mySwitch,这会暂时破坏控制器和 mySwitch 之间的链接。删除这个“self.mySwitch = [[UISwitch alloc]init];”解决了我的问题。非常感谢您的回答。
标签: objective-c ios uiswitch