2017-03-17 5 views
0

Ich habe eine Schaltfläche in meinem UIView erstellt, kann aber nicht herausfinden, warum es nicht funktioniert. Derselbe Code funktioniert in anderen UIViews. Hier ist mein Code. Ich habe verschiedene Kombinationen aus dem Initialisieren der Schaltfläche mit einem Rahmen oder mithilfe von Einschränkungen versucht, aber es macht keinen Unterschied.Swift 3 UIButton addTarget funktioniert nicht

override func viewDidLoad() { 
    super.viewDidLoad() 

    let backButton: UIButton = { 
     let button = UIButton() 
     button.setTitle("BACK", for: .normal) 
     button.setTitleColor(Constants.APP_TEXT_COLOR, for: .normal) 
     button.titleLabel?.font = Constants.APP_HEADER_FONT 
     button.backgroundColor = .blue 
     button.translatesAutoresizingMaskIntoConstraints = false 
     button.addTarget(self, action: #selector(pressBackButton(button:)), for: .touchUpInside) 
     return button 
    }() 

    backView.addSubview(backButton) 

    view.addSubview(backgroundView) 

    backgroundView.addSubview(webView) 

    backgroundView.addSubview(backView) 
} 

und meine Funktion

func pressBackButton(button: UIButton) { 

    print("BUTTON PRESSED") 
} 
+0

Versuchen Sie mit '#selector (YourViewController.pressBackButton (button :))' – AtaerCaner

+0

Ich habe es versucht, aber es hat nicht funktioniert. – markhorrocks

Antwort

3

Es funktioniert gut, wenn ich Ihren Code mit einer Änderung versuchen, wie ich Rückenansicht nicht haben. So ersetzt

backView.addSubview(backButton) 

mit

self.view.addSubview(backButton) 

ich das Protokoll in pressBackButton Funktion auf der Konsole beim Drücken der Taste sehen. Stellen Sie sicher, dass Ihre Konsolenansicht nicht deaktiviert ist. shift + command + C zeigt die Konsolenansicht an.