ios - 将 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;
}
在 viewDidLoad 中:
self.tableView.tableHeaderView = self.headerView;
我不知道这是否是正确的方法,因为我在运行应用程序时看不到我的标题
感谢您的帮助
解决方案
您实现 getter 的方式headerView
将始终返回nil
。这样的事情应该表现得更恰当:
- (UIView *)headerView {
if (!_headerView) {
_headerView = [[NSBundle mainBundle] loadNibNamed:@"HeaderView" owner:self options:nil].firstObject;
}
return _headerView;
}
您需要将 实际设置为_headerView
从 返回的视图数组中的第一个对象loadNibNamed
。
推荐阅读
- python - 调用从 pytest 夹具产生的函数
- python - 推荐哪台 EC2 机器运行 Pillow/openCV?
- google-apps-script - 谷歌脚本转换为十六进制
- python - 将此函数绘制为累积分布
- dart - 如何在 CustomScrollView 中使用非银色小部件
- automata - 如果 M 是图灵机,问题是否 L(M) = A Regular Language,Decidable?
- c# - 现有 Asp.Net 核心应用程序中缺少 Azure Active Directory 连接服务的身份验证
- python - 有没有将 Pandas DataFrame 转换为 H2O Frame 的有效方法?
- facebook - 如何从 FB 页面中的帖子访问数据
- php - 新的 PDO 请求总是超时