将 xib 文件作为 UITableViewController 中的标头添加到 UITableView



我有一个UITableViewController的子类,我的桌子很好,准备好了。 我的问题是,我想添加一个自定义UIView作为表的标题。所以我创建了一个空的 xib 文件"HeaderView.xib"并在其中添加我的视图(一个UIView和 2 个UIButton(,并添加了 UITableViewController 的类作为文件所有者,并将我的两个按钮连接到类:

- (IBAction)addNewItem:(id)sender
{
}
- (IBAction)toggleEdittingMode:(id)sender
{
}

在类扩展中,我添加了一个 UIView 类型的属性:

@property (nonatomic, strong) IBOutlet UIView *headerView;

然后我覆盖了 getter 方法:

- (UIView *)headerView
{
if (_headerView) {
[[NSBundle mainBundle] loadNibNamed:@"HeaderView"
owner:self
options:nil];
}
return _headerView;
}

并在视图中加载:

self.tableView.tableHeaderView = self.headerView;

我不知道这是否是正确的方法,因为我在运行应用程序时看不到我的标题

感谢您的帮助

您实现headerViewgetter 的方式将始终返回nil。像这样的东西应该表现得更合适:

- (UIView *)headerView {
if (!_headerView) {
_headerView = [[NSBundle mainBundle] loadNibNamed:@"HeaderView" owner:self options:nil].firstObject;
}
return _headerView;
}

您需要实际将_headerView设置为从loadNibNamed返回的视图数组中的第一个对象。

最新更新