Screenshot of Wikipedia iOS App
我正在尝试向标题添加一个按钮,触发向另一个视图控制器的转换,就像上面链接到维基百科iOS应用程序的屏幕截图一样。我想我会被绊倒,因为我不能(至少我不认为我可以?)“现在”,“显示”或“推”另一个视图控制器,因为我的类是UITableViewHeaderFooterView。
我是Swift的新手,希望我不会错过任何明显的东西,但任何帮助/指导都会非常感激!
以下是我的代码的简化版本:
class HeaderCell: UITableViewHeaderFooterView {
var editButton: UIButton!
override init(reuseIdentifier: String?) {
self.editButton = UIButton()
self.editButton.setImage(UIImage(named: "Edit"), for: .normal)
super.init(reuseIdentifier: reuseIdentifier)
self.editButton.addTarget(self, action: #selector(editButtonPressed), for: .touchUpInside)
self.contentView.addSubview(editButton)
// Plaeholder for constraints
}
required init?(coder aDecoder: NSCoder) {
fatalError()
}
@objc func editButtonPressed() {
// Trigger transition to another view controller
}
}
答案 0 :(得分:0)
你可以做一些事情: 1)使用代表 2)从视图控制器添加目标到按钮 3)使用响应链
创建一个HeaderCellDelegate:
protocol HeaderCellDelegate: class {
func didTapEdit()
}
class HeaderCell: UITableViewHeaderFooterView {
weak var delegate: HeaderCellDelegate?
/*
existing code
*/
@objc func editButtonPressed() {
// Trigger transition to another view controller
delegate?.didTapEdit()
}
}
然后在你的viewcontroller中:
将HeaderCell委托设置为self。
headerCell.delegate = self
extension viewcontroller: HeaderCellDelegate {
func didTapEdit() {
//present/push the new view controller
}