別のビューから情報が挿入された後に更新する必要がある tableView があります。私が実行する場合
[self.tableView reloadData];
次に別のビューにさらに情報を挿入してテーブルをリロードしようとすると、現在表示されているすべての行が複製されます。
つまり、アプリを起動すると、次のようになります。
tableView:
Row 1
Row 2
次に、テーブルにも表示される情報を送信すると、突然次のようになります。
tableView
Row 1
Row 2
Row 3 <- info I just added
Row 1
Row 2
私の numberOfRowsInSection 実装は次のようになります。
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
return [ItemsController sharedItemsController].count;
}
私の cellForRowAtIndexPath 実装は次のようになります。
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
ItemsController* controller = [ItemsController sharedItemsController];
NSMutableArray* recentItems = controller.listOfRecentItems;
CustomCell *cell = nil;
NSUInteger row = [indexPath row];
if( row < recentItems.count )
{
Items* item = [recentItems objectAtIndex:row];
if( recentCellData == nil )
recentCellData = [[NSMutableDictionary alloc] initWithCapacity:[indexPath length]];
if( [recentCellData count] > 0 )
cell = [recentCellData objectForKey:[NSString stringWithFormat:@"%d", row]];
if (cell == nil) {
UIViewController * view1 = [[UIViewController alloc] initWithNibName:@"CustomCell" bundle:nil];
cell = (CustomCell*)[view1 view];
[recentCellData setObject:cell forKey:[NSString stringWithFormat:@"%d",row]];
}
// do some other stuff here
}
// Set up the cell
return cell;
}
テーブルを更新し、現在表示されている行の重複を避けるための最良の方法は何ですか? すべての助けを前もって感謝します!