以编程方式更改UISwitch错误的状态

时间:2012-11-06 16:35:19

标签: objective-c ios uiswitch

我正在尝试使用方法[self.mySwitch setOn:YES animated:YES];

动态更改UISwitch

状态也在代码中发生变化,以便mecanisme工作正常但在视图中状态没有变化。因此,我将UISwitch显示为OFF并按原样运行。

当我点击它时,开关变为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];
    }
}

3 个答案:

答案 0 :(得分:3)

您以编程方式将不同的UISwitch设置为视图中显示的UISwitch。您根本不必执行[[UISwitch alloc]init],而应该通过控制器中的IBOutlet属性检索它(连接到IB中的视图)。

假设你确实连接了mySwitch,那么你需要做的就是删除这一行:

self.mySwitch = [[UISwitch alloc]init];

答案 1 :(得分:2)

您的问题是,您在manageTheSwitch方法中实例化了一个新按钮,而不是访问您在故事板中创建的按钮。只需消除alloc init。

答案 2 :(得分:0)

尝试使用UISwitch继承自UIControl的“selected”属性:  self.mySwitch.selected = YES;