Кнопка получения проблем в пользовательском интерфейсе для ответа на касание
Так что у меня есть пользовательский UIView с кнопкой в нем, называемой кнопкой домой. В других контроллерах представления эта кнопка home в этом конкретном 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, я просто не видел смысла показывать ее. Я понятия не имею, почему кнопка не отвечает. Любые идеи о том, как заставить кнопку реагировать, были бы наиболее полезными. Спасибо за ваше рассмотрение этого вопроса.
С уважением,
Шон