2017-12-01 1 views
0

Ich habe ein Problem, wenn ich ein Ziel zu einer Schaltfläche aus einem geladenen Xib hinzufügen möchten.Button geladen von Xib AddTarget führt keine Aktion

Ich habe dies:

var cleanFilters = FilterLabelView() 

override func viewWillAppear(_ animated: Bool) { 
    navigationItem.title = "EXPLORE WORKOUTS" 
    self.navigationController!.navigationBar.titleTextAttributes = [NSFontAttributeName: UIFont(name: "OpenSans-CondensedBold", size: 16.0)!] 
    setFilterLabel() 
} 

func setFilterLabel() { 
    cleanFilters = (Bundle.main.loadNibNamed("FilterLabelView", owner: self, options: nil)?.first as? FilterLabelView)! 
    self.view.addSubview(cleanFilters) 

    cleanFilters.translatesAutoresizingMaskIntoConstraints = false 
    self.view.addConstraint(NSLayoutConstraint(item: cleanFilters, attribute: .top, relatedBy: .equal, toItem: self.topLayoutGuide, attribute: .bottom, multiplier: 1, constant: 30)) 
    self.view.addConstraint(NSLayoutConstraint(item: cleanFilters, attribute: .trailingMargin, relatedBy: .equal, toItem: self.view, attribute: .trailingMargin, multiplier: 1, constant: 35)) 

    cleanFilters.deleteButton.addTarget(self, action: #selector(hideFilterLabel), for: .touchUpInside) 
    cleanFilters.confirmButton.addTarget(self, action: #selector(setDefaultFilters), for: .touchUpInside) 

    cleanFilters.isHidden = defaultsManager.isDefaultFilters() 
    if !cleanFilters.isHidden { 
     self.workoutsCollection.isUserInteractionEnabled = false 
    } 
} 

func hideFilterLabel() { 
    cleanFilters.isHidden = true 
    self.workoutsCollection.isUserInteractionEnabled = true 
} 

func setDefaultFilters() { 
    defaultsManager.setDefaultFilters() 
    cleanFilters.isHidden = true 
    getAllWorkouts() 
} 

Die DeleteButton und ConfirmButton Aktionen werden nicht genannt zu werden, und ich kann nicht herausfinden, warum.

Hier ist der FilterLabelView Ich lade:

import UIKit 

class FilterLabelView: UIView { 
@IBOutlet weak var deleteButton: UIButton! 
@IBOutlet weak var confirmButton: UIButton! 
@IBOutlet weak var labelTapRecongnizer: UITapGestureRecognizer! 
} 
+0

Was ist die 'cleanFilters'? – Mannopson

+0

Die 'FilterLabelView' xib die ich geladen habe, die die Knöpfe hat Ich versuche die Ziele zu –

+0

hinzuzufügen' var cleanFilters: FilterLabelView! 'Richtig? – Mannopson

Antwort

0

Sind Sie sicher, dass Ihre Tasten nicht versteckt sind? Denken Sie daran, dass, wenn eine Schaltfläche ausgeblendet ist, der Hittest keine Berührungen ausführen kann ... ist es auch möglich, dass Ihre Schaltflächen wirklich klein sind oder isUserInteractionEnabled als false haben ... Eine gute Möglichkeit, sich bewusst zu machen, ob ein Problem mit der Ansicht besteht die Debug view hierarchy

+0

Ich sah es an und die 'isUserInteractionEnabled' ist wahr, ich habe auch versucht, eine TAP-Geste Erkennung aber es hat nicht funktioniert. –

Verwandte Themen