詳細ビューコントローラーcellForRowAtIndexPath
から戻った後、更新されません。
HomeViewController
- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view from its nib.
self.title =@"Welcome";
[eventsTable registerNib:[UINib nibWithNibName:@"EventCell" bundle:nil] forCellReuseIdentifier:@"EventCell"];
//filtering process from current date
[self fetchUsersForType:1];
[eventsTable reloadData];
// Configure the bar button Items..
UIBarButtonItem *filterButton = [[UIBarButtonItem alloc]initWithTitle:@"Filter" style:UIBarButtonItemStylePlain target:self action:@selector(filterTapped:)];
UIBarButtonItem *addButton = [[UIBarButtonItem alloc]initWithBarButtonSystemItem:UIBarButtonSystemItemAdd target:self action:@selector(addTapped:)];
self.navigationItem.leftBarButtonItem = filterButton;
self.navigationItem.rightBarButtonItem = addButton;
refreshControl= [[UIRefreshControl alloc]init];
[eventsTable addSubview:refreshControl];
//testing
[refreshControl addTarget:self action:@selector(reloadTable) forControlEvents:UIControlEventValueChanged]; //performing async operation here
[bottomView setFrame:CGRectMake(0, self.view.frame.size.height-69, 320, 69)];
}
tableview データソース メソッド
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
return [self.eventsArray count];//1;//[sectionInfo numberOfObjects];
}
// Customize the appearance of table view cells.
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *CellIdentifier = @"EventCell";
//testing
EventCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
PersonEvent *currentEvent = [self.eventsArray objectAtIndex:indexPath.row];
[cell configureForEvent:currentEvent];
return cell;
}
ViewDidAppear
-(void)viewDidAppear:(BOOL)animated
{
[super viewDidAppear:animated];
[[NSNotificationCenter defaultCenter]removeObserver:self];
[self reloadTable];
}
- (void)reloadTable
{
NSLog(@"Reloading table view for the new contacts .");
[self fetchUsersForType:currentFilterIndex];
[eventsTable reloadData];
[refreshControl endRefreshing];
NSLog(@"Observer finished.");
}
リフレッシュ コントロールを使用したので、2 回リフレッシュすると更新されますが、何が問題なのですか?
私もブレークポイントを置いていますがcellForRowAtIndexPath
、最初にしか呼び出されませんが、特定の行を選択して詳細ビューコントローラーに入って戻ってきてcellForRowAtIndexPath
も、呼び出されません。