任何想法?一些示例代码或一些建议将受到欢迎...... thx
// add bank to tableView
-(void)addBankFromList {
if (notInList == nil) {
UIAlertView *alert = [[UIAlertView alloc]initWithTitle:@"Could not be added" message:@"Bank already in list" delegate:self cancelButtonTitle:@"Dismiss" otherButtonTitles:nil, nil];
[alert show];
[alert release];
}
else {
// [banksTableView insertRowsAtIndexPaths:[NSArray arrayWithObject:[NSIndexPath indexPathForRow:[banks count] inSection:0]] withRowAnimation:UITableViewRowAnimationLeft];
// [banksTableView reloadData];
}
}
// call addBankFromList method when button Add to List is touched .
-(void)actionSheet:(UIActionSheet *)actionSheet clickedButtonAtIndex:(NSInteger)buttonIndex {
[self addBankFromList];
}
#pragma mark UIPicker Delegate and DataSource methods
- (void)pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component {
for (NSString *temp in banksNotInList)
if (temp == [arrayWithBanks objectAtIndex:row]) {
notInList = [[NSMutableString alloc]initWithString:temp];
NSLog(@"%@",temp);
}
else notInList = nil;
}
已解决(阅读第一条评论)
[appDelegate.banks insertObject:notInList atIndex:[appDelegate.banks count]];
[banksTableView insertRowsAtIndexPaths:[NSArray arrayWithObject:[NSIndexPath indexPathForRow:[banks count] inSection:0]] withRowAnimation:UITableViewRowAnimationLeft];
[banksTableView reloadData];
答案 0 :(得分:0)
看起来你有正确的想法。从逻辑上讲,您需要检查表中是否已存在该对象(您已在进行此操作)。然后,如果它不在,你将插入它。如果您对udpating tableViews不太熟悉,那就会出现问题。你上面做的是正确的开始。您希望创建一个您想要插入新对象的indexPath,但在实际插入新行之前,您需要执行几个步骤。您必须使numberOfRowsInSection
与更新的数字匹配,因此如果要从数组中绘制该返回,则需要更新阵列。因此,假设您有banks
作为您正在显示tableView单元格的数组,您可以将新对象插入到其相应位置的数组中,然后调用insertRowsAtIndexPaths:withRowAnimation:
。这样,当tableView调用其dataSource
方法时,它不会产生冲突的结果。简而言之,您更新数据数组,然后更新tableView。我希望一切都有意义