Изменить значение UISwitch без запуска события - PullRequest
0 голосов
/ 13 сентября 2011

Я пытаюсь изменить значение UISwitch в зависимости от того, включены ли у вас службы определения местоположения.Я устанавливаю целевое событие в методе ViewDidLoad, но, поскольку вы можете закрыть приложение и загрузить его обратно из фона, я изменяю значение UISwitch в ViewDidAppear:

- (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 Ответ

2 голосов
/ 13 сентября 2011

Вам необходимо удалить целевое событие.

Если UISwitch не служит никакой другой цели, кроме как показать вам, что что-то включено или отключено, то вам не нужно целевое событие.

...