如何在iOS中刷新页脚视图?
我已经创建了一个视图(xib)作为我的页脚 我已将xib的文件所有者分配给如何在iOS中刷新页脚视图?,ios,ios7,uitableview,Ios,Ios7,Uitableview,我已经创建了一个视图(xib)作为我的页脚 我已将xib的文件所有者分配给FTHeaderFooterViewController 我定义了一个名为total的指针指向我的标签,其中footerView指向我的实际页脚视图 @interface FTHeaderFooterViewController : UITableViewController { IBOutlet UIView *footerView; __weak IBOutlet UI
FTHeaderFooterViewController
我定义了一个名为total
的指针指向我的标签,其中footerView
指向我的实际页脚视图
@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];
}
页脚显示一切正常
但是,在中更改标签的值时:
-(void)viewWillAppear:(BOOL)animated
{
[super viewWillAppear:animated];
[self drawFooter];
[[self tableView] reloadData];
}
- (void)drawFooter
{
NSString *totalStr = @"test";
[total setText:totalStr];
}
标签无法刷新。我错过了什么?两件事:
一,。
加载xib文件时忘记分配footerview变量
-(UIView *)footerView
{
if (!footerView) {
footerView = [[NSBundle mainBundle] loadNibNamed:@"FTFooterView" owner:self options:nil];
}
return footerView;
}
二,。
footerview方法覆盖footerview IBOutlet属性中的默认getter
-(UIView *)footerView
该死的……是的,你是对的。但是我在哪里初始化标签呢?在xib或代码隐藏中?您是否将UILabel链接到xib?因为通常xib应该初始化您的UILabel@AncAinu这是一个很好的指针。我使用自己的
init
构造viewController。可能是这导致了问题…如果您使用xib,则不会调用标准的init
方法(在我的记忆中,我不使用xib),它应该是initWithNibName…
,因此您应该重写并使用ITAHH问题不是2。我打算重写getter以从1返回代码。问题是1。它本身谢谢你的提示!我必须运行[self footerView]初始化中的code>,以确保在viewWillApear
尝试设置标签文本之前,已设置视图且其不是nil
。