无法在自定义uiview中获取按钮以响应触摸

时间:2017-02-17 11:31:46

标签: ios swift uiview delegates

所以我有一个带有按钮的自定义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函数,我只是没有看到显示它的重点。我不知道为什么按钮没有响应。关于如何让按钮响应的任何想法都将是最有帮助的。感谢您对此事的考虑。

真诚的,
肖恩

0 个答案:

没有答案