我通过模态视图控制器在UItableView中添加用户定义的文本。 该表创建为NSMutableArray。在模态视图中输入数据并点击完成按钮时无效更新:无效的部分数。生成错误。 我必须在用户输入数据但不确定如何操作时更新数组。我附上了相关的代码。谢谢你的建议。
//Number of sections
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView { return 1; }
//Number of rows
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
return [listOfConjProcedures count];
}
//Loading the cells
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *CellIdentifier = @"Cell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];
}
// Configure the cell.
cell.textLabel.text = [listOfConjProcedures objectAtIndex:indexPath.row];
return cell;
}
//Done button Delegate for the modal view
- (void)itemDetailViewController:(ItemDetailViewController *)controller didFinishAddingItem:(ChecklistItem *)item
{
int newRowIndex = [listOfConjProcedures indexOfObject:item];
[listOfConjProcedures addObject:item];
NSIndexPath *indexPath = [NSIndexPath indexPathForRow:newRowIndex inSection:0];
NSArray *indexPaths = [NSArray arrayWithObject:indexPath];
[self.tableView insertRowsAtIndexPaths:indexPaths withRowAnimation:UITableViewRowAnimationAutomatic];
[self dismissViewControllerAnimated:YES completion:nil];
}
答案 0 :(得分:1)
我认为你的问题可能在这里:
int newRowIndex = [listOfConjProcedures indexOfObject:item];
除非你已经将它添加到数组中,否则它不会有索引,但是在下一行中你将它添加到数组中,所以它没有意义。
我认为你在索引路径0,NSNotFound中添加一行会混淆表视图。使用数组的计数作为行索引,或者在表的开始(0,0)处插入新行(并在数组的索引0处)。