В моем «Секционированном» UITableView
у меня есть два раздела: первый для атрибутов, таких как имя, и второй - для редактирования, где вы можете добавлять объекты.Вот его изображение:
альтернативный текст http://fwdr.org/bm9w
Существует атрибут, который пользователь может изменить (в данном случае Тип ), который будет изменять количествостроки во втором разделе.Чтобы быть более точным, если выбрано одно свойство, максимальное количество строк равно 2, и тогда не будет Добавить новую… строку.
Вот что я пробовал (в моем UITableViewController)…
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
if ([self isToManyRelationshipSection:section]) {
NSArray *sectionKeys = [rowKeys objectAtIndex:section];
NSString *row0Key = [sectionKeys objectAtIndex:0];
if ([[NSString stringWithFormat:@"%@", [managedObject valueForKey:@"type"]]
isEqualToString:[NSString stringWithFormat:@"One on One"]] && [[managedObject valueForKey:row0Key] count] == 2){
return [[managedObject valueForKey:row0Key] count];
}
return [[managedObject valueForKey:row0Key] count] +1;
}
return [rowLabels countOfNestedArray:section];
}
Но если пользователь пытается удалить строку, когда уже есть 2 строки, приложение вылетает из-за одинакового количества строк до и после удаления.
Как мне обойти это и сделать это правильно?