У меня очень простая таблица с одной строкой, на которой есть переключатель. в основном, когда пользователь включает переключатель, я бы хотел добавить еще одну строку ниже первой. кажется, что ничего не работает должным образом, даже пройдя через многие темы здесь. в лучшем случае я могу добавить еще одну строку, но в новом разделе, а это не то, что я хочу.
вот мой код:
LoadDidView:
listOfItems = [[NSMutableArray alloc] init];
listOfItems = [NSMutableArray arrayWithObjects:@"LINE 1" ,nil];
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
static NSString *CellIdentifier = @"Cell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleValue1 reuseIdentifier:CellIdentifier]; //try here diff styles
}
NSString *cellValue = [listOfItems objectAtIndex:indexPath.row];
cell.textLabel.text = cellValue;
switch1 = [[UISwitch alloc] initWithFrame:CGRectZero];
[switch1 addTarget:self action:@selector(toggleEnabledTextForSwitch1onSomeLabel:) forControlEvents:UIControlEventValueChanged];
[cell addSubview:switch1];
cell.accessoryView = switch1;
return cell;
}
И действие, связанное с моим переключателем:
- (IBAction) toggleEnabledTextForSwitch1onSomeLabel: (id) sender {
if (switch1.on) {
[listOfItems insertObject:@"LINE 2" atIndex:0];
[tblSimpleTable reloadData];
}
}
Я где-то читал, что мне нужно использовать insertRowsAtIndexPaths: но я понятия не имею, действительно ли мне это нужно в моем случае, поскольку я не редактирую свои ячейки - просто добавляю одну ячейку в тот же раздел.
Это правильный способ сделать это? что я тут не так делаю?
Спасибо!
EDIT:
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
int count = [listOfItems count];
if(self.editing) {
count++;
}
return count;
}