我的tableView有问题。我在一个数组中添加了一堆项目,并要求tableView使用数组中的那些项填充它,它运行正常,但是当我更改了项目时#39; dataView中的索引(订单),tableView没有正确显示项目。我知道我的阵列及其物品'订单按我的预期工作,因为NSLogs告诉我。有人可以帮我这个吗?提前谢谢!
这是我用来添加新项目的方法:
- (IBAction)AddNewItem:(id)sender{
BNRItem *newItem = [[VKItemStore sharedStore] createItem];
NSInteger lastRow = [[VKItemStore sharedStore].itemsArray indexOfObject:newItem];
NSIndexPath *indexPath = [NSIndexPath indexPathForRow:lastRow inSection:0];
[self.tableView insertRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationTop];
}
这就是我改变数组中项目顺序的方式:
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"UITableViewCell" forIndexPath:indexPath];
NSMutableArray *items = [VKItemStore sharedStore].itemsArray;
if (items.count == 2) {
items[0] = items[1];
items[1] = [VKItemStore sharedStore].item;
}
NSLog(@"AFTER ARRAY: %@", items);
BNRItem *item = items[indexPath.row];
cell.textLabel.text = [item description];
return cell;
}
答案 0 :(得分:0)
如果使用此代码阻止您可能会对此有所帮助
if (items.count == 2) {
BNRItem *item = items[0];
items[0] = items[1];
items[1] = item;
}
因为您的[VKItemStore sharedStore] .item将只有您当前的项目,即数组项目的最后一个对象[1]。并将它存储在[1]项目中。所以试试上面的代码可能会对你有帮助。
答案 1 :(得分:0)
更改此行代码:
NSInteger lastRow = [[VKItemStore sharedStore].itemsArray indexOfObject:newItem];
这样就变成了:
NSInteger lastRow = [[VKItemStore sharedStore].itemsArray indexOfObject:newItem] - 1;