Используя приведенный ниже код в методе источника данных моего табличного представления ( ... cellForRowAtIndexPath: ) Я создаю UISwitch только в определенных ячейках для представления пользовательских настроек, которое переходит в представление всплывающего окна.
Однако переключатели работают по какой-то причине, когда я прокручиваю вверх и вниз переключатели вида, которые добавляются и удаляются из случайных ячеек, которые я не указал, в них должен быть переключатель UIS.
Что я здесь не так делаю?
Это мой код:
if (section == 0) {
if (row == 0) {
cell.textLabel.text = @"Units";
}
if (row == 1) {
cell.textLabel.text = @"Prefered System";
}
if (row == 2) {
cell.selectionStyle = UITableViewCellSelectionStyleNone;
cell.textLabel.text = @"Lock System";
UISwitch *switch1 = [[UISwitch alloc] initWithFrame:switchFrame];
if ([defaults boolForKey:kLockSystem]) {
[switch1 setOn:YES animated:NO];
}
else {
[switch1 setOn:NO animated:NO];
}
[switch1 addTarget:self action:@selector(switchToggled:) forControlEvents:UIControlEventValueChanged];
switch1.tag = 1;
cell.accessoryView = switch1;
[switch1 release];
}
if (row == 3) {
cell.selectionStyle = UITableViewCellSelectionStyleNone;
cell.textLabel.text = @"Reset On Exit";
UISwitch *switch2 = [[UISwitch alloc] initWithFrame:switchFrame];
if ([defaults boolForKey:kResetOnExit]) {
[switch2 setOn:YES animated:NO];
}
else {
[switch2 setOn:NO animated:NO];
}
[switch2 addTarget:self action:@selector(switchToggled:) forControlEvents:UIControlEventValueChanged];
switch2.tag = 2;
cell.accessoryView = switch2;
[switch2 release];
}
}