所以我有一个带有按钮的自定义UIView,称为主页按钮。在其他视图控制器中,此特定UIView中的此主页按钮工作正常。然而,在一个特定的视图控制器中,主页按钮不响应触摸 - 应用程序就像按钮不在那里一样。
class TemplateChooserViewController: UIViewController, HeaderViewDelegate {
...
@IBOutlet weak var myHeader: HeaderView!
override func viewDidLoad() {
super.viewDidLoad()
myHeader.delegate = self
myHeader.Title.text = "Template Chooser"
... //All the rest of this function has been commented out and the home button still didn't work
}
func homeButtonTapped()
{
let home = self.navigationController?.viewControllers.first //code never reaches here
self.navigationController?.popToViewController(home!, animated: false)
}
HeaderView文件如下所示:
protocol HeaderViewDelegate: class {
func homeButtonTapped()
func informationButtonTapped()
}
class HeaderView: UIView {
weak var delegate: HeaderViewDelegate?
@IBOutlet var view: UIView!
@IBOutlet weak var Title: UILabel!
@IBOutlet weak var flameDecal: UIImageView!
@IBOutlet weak var homeButton: UIButton!
required init(coder aDecoder: NSCoder)
{
super.init(coder: aDecoder)!
Bundle.main.loadNibNamed("HeaderView", owner: self, options: nil)
self.addSubview(self.view)
}
@IBAction func homeButtonTouched(_ sender: UIButton)
{
delegate?.homeButtonTapped() //Code also doesn't reach here
}
@IBAction func infoButtonTouched(_ sender: UIButton) {
delegate?.informationButtonTapped()
}
}
请记住代码编译正常,所以我确实实现了infoButtonTouched函数,我只是没有看到显示它的重点。我不知道为什么按钮没有响应。关于如何让按钮响应的任何想法都将是最有帮助的。感谢您对此事的考虑。
真诚的,
肖恩