Reputation: 66320
I have created a view (xib) as my footer.
I have assigned the file owner of the xib to FTHeaderFooterViewController
.
I have definied a pointer called total
to my label, where footerView
points to my actual footer view.
@interface FTHeaderFooterViewController : UITableViewController
{
IBOutlet UIView *footerView;
__weak IBOutlet UILabel *total;
}
- (UIView *)footerView;
@implementation FTHeaderFooterViewController
-(UIView *)footerView
{
if (!footerView) {
[[NSBundle mainBundle] loadNibNamed:@"FTFooterView" owner:self options:nil];
}
return footerView;
}
-(CGFloat)tableView:(UITableView *)tableView heightForFooterInSection:(NSInteger)section
{
return [[self footerView] bounds].size.height;
}
-(UIView *)tableView:(UITableView *)tableView viewForFooterInSection:(NSInteger)section
{
return [self footerView];
}
That all works fine the footer shows.
However when I change the value for a label in :
-(void)viewWillAppear:(BOOL)animated
{
[super viewWillAppear:animated];
[self drawFooter];
[[self tableView] reloadData];
}
- (void)drawFooter
{
NSString *totalStr = @"test";
[total setText:totalStr];
}
The label doesn't get refreshed. What am I missing?
Upvotes: 1
Views: 912
Reputation: 6115
2 Things:
1. You forgot to assign the footerview variable when you load the xib file
-(UIView *)footerView
{
if (!footerView) {
footerView = [[NSBundle mainBundle] loadNibNamed:@"FTFooterView" owner:self options:nil];
}
return footerView;
}
2. Your footerview method overrides default getter from the footerview IBOutlet property
-(UIView *)footerView
Upvotes: 2