Screenshot of Wikipedia iOS App
我正在尝试向标题添加一个按钮,该按钮会触发到另一个 View Controller 的转换,就像上面维基百科 iOS 应用程序屏幕截图的链接一样。我想我被绊倒了,因为我不能(至少我不认为我可以?)“呈现”、“显示”或“推送”另一个 View Controller ,因为我的类是 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
}
}
最佳答案
你可以做一些事情: 1)使用委托(delegate) 2)从 View Controller 将目标添加到按钮 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()
}
}
然后在你的 View Controller 中:
将 HeaderCell 委托(delegate)设置为 self。
headerCell.delegate = self
extension viewcontroller: HeaderCellDelegate {
func didTapEdit() {
//present/push the new view controller
}
关于swift - 以编程方式向 UITableViewFooterHeaderView 添加按钮以转换到另一个 View Controller ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48775947/