私のiPhoneアプリケーションに「お気に入りに追加」機能を実装しました。実行時に好きなテーブルビューにセルを追加する以外は正常に動作します。例えば、私は以下の方法を与えました。iPhone:tabelviewが既に読み込まれた後にテーブルビューに行を追加するには?
- (void)viewWillAppear:(BOOL)animated
{
[super viewWillAppear:animated];
tableView.hidden = YES;
warningLabel.hidden = YES;
// Load any change in favourites
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
NSData *data = [defaults objectForKey:kFavouriteItemsKey];
self.favourites = [NSKeyedUnarchiver unarchiveObjectWithData:data];
if([self.favourites count] > 0)
tableView.hidden = NO;
else
warningLabel.hidden = NO;
}
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
{
return 1;
}
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
return [self.favourites count]; // Favorites is a dictionary contains required data
}
- (UITableViewCell *)tableView:(UITableView *)tView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *CellIdentifier = @"Cell";
UITableViewCell *cell = [tView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease];
}
cell.textLabel.text = [NSString stringWithFormat:@"index: %d",indexPath.row];
return cell;
}
このコードは正常に動作し、初めて正しく行を表示します。テーブルビューが読み込まれた後、お気に入りに新しいアイテムを追加したり、アイテムを削除したりすると、テーブルビューに何の変化もありません。私はお気に入りの辞書で利用可能なものを正確に表示したい。 CellForRowAtIndexPathは、ViewAppearを再度呼び出すと呼び出されないようです。要件を達成するために使用できるTableViewのメソッドはありますか?
よろしくお願いします。ありがとう! – applefreak
@AppleDeveloper、乾杯;-) – EmptyStack