我是Swift的新手,我正在尝试将自定义的UITableViewHeaderFooterView与nib连接到我的viewcontroller。当我这样做时,我得到了这个常见的错误,我之前已经处理过这个错误,并在this post中进行了总结。
然而这一次,我对于什么是可选的解包以及如何解决这个问题感到有点困惑。
据我所知,所有内容都正确连接 - 我正在使用的UITableView(menuTableView)连接到IBOutlet,nib中自定义标头的所有部分也是如此。标识符和笔尖名称也是正确的。知道发生了什么事吗?这是错误产生的代码:
menuTableView.register(UINib(nibName: "MenuTableHeader", bundle: nil), forHeaderFooterViewReuseIdentifier: "MenuTableHeader")
这是我的MenuTableHeader.swift文件,减去一两个函数。
class MenuTableHeader: UITableViewHeaderFooterView {
@IBOutlet var menuTableHeader: UIView!
@IBOutlet var menuHeaderLabel: UILabel?
@IBOutlet var menuHeaderImage: UIImageView?
var delegate: MenuTableHeaderDelegate?
var section: Int = 0
override init(reuseIdentifier: String?) {
super.init(reuseIdentifier: reuseIdentifier)
// Call tapHeader when tapping on this header
addGestureRecognizer(UITapGestureRecognizer(target: self, action: #selector(MenuTableHeader.tapHeader(_:))))
}
required init?(coder aDecoder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}
谢谢!
答案 0 :(得分:0)
在我看来,即使笔尖中只有一个元素,笔尖名称和标识符也不应该相同。例如,在我的项目中,我使用了以下行:
{% extends "rest_framework/login_base.html" %}
{% block branding %}
<h3 style="margin: 0 0 20px;">Some New Title</h3>
{% endblock %}
相应地重命名文件和标识符。