UISwitch, который никогда не выключается

Я создал UISwitch со следующим кодом:

CGRect switchFrame = CGRectMake(200, 10, 94, 27);
UISwitch *yesNo = [[[UISwitch alloc] initWithFrame:switchFrame] autorelease];
[yesNo addTarget:self action:@selector(handleSwitch:) forControlEvents:UIControlEventValueChanged];

Однако независимо от состояния переключателя свойство on всегда возвращает YES, даже если визуально оно равно NO.

Обработчик события выглядит так:

-(IBAction) handleSwitch: (UISwitch *) sender{
    self.displayCompleted = sender.on;
}

Который устанавливает свойство displayCompleted:

-(void) setDisplayCompleted:(BOOL)newValue{
    displayCompleted = newValue;
    [[self tableView] reloadData];
}

Что может быть причиной этого?


person cfischer    schedule 13.05.2011    source источник
comment
Я не думаю, что код, который вы предоставили, имеет какие-либо проблемы. Как насчет метода -handleSwitch: или той его части, где вы фактически получаете состояние переключателя?   -  person Deepak Danduprolu    schedule 13.05.2011
comment
Я просто включил обработчик событий, а также свойство, которое он устанавливает.   -  person cfischer    schedule 13.05.2011


Ответы (1)


Я совершал глупую ошибку: при воссоздании ячейки после reloadData UISwitch создавался без отражения текущего состояния свойства displayCompleted.

person cfischer    schedule 13.05.2011