2011-09-12 60 views
0

我试图根据是否启用位置服务来更改UISwitch的值。我设置在ViewDidLoad方法的目标事件,而是因为你可以从后台关闭应用程序负载回来后,我改变了的UISwitchViewDidAppear值:在不触发事件的情况下更改UISwitch值

- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 

    [self.cell2Switch addTarget:self action:@selector(switchValueChanged:) forControlEvents:UIControlEventValueChanged]; 

    ... 

} 

- (void)viewDidAppear:(BOOL)animated 
{ 
    [super viewDidAppear:animated]; 

    if(![AppDelegate sharedAppDelegate].locationServicesEnabled && self.cell2Switch.on) 
    { 
     self.cell2Switch.userInteractionEnabled = NO; 
     [self.cell2Switch setOn:NO]; 
    } 
} 

当我改变该值会触发我在ViewDidLoad中分配的目标事件。

有没有一种方法可以改变UISwitch的值,而不会自动触发事件?

回答

1

您需要删除目标事件。

如果UISwitch除了向您显示启用或禁用某些功能之外没有其他用途,则您不需要目标事件。

+0

感谢您的回答,非常有意义。 –

相关问题