2016-10-13 6 views
3

Ich habe eine Klassendatei geschrieben, um eine topBar für meine App zu erstellen, ich auch hinzufügen Schaltflächen in der oberen Leiste nach dem Hinzufügen Ziel zu den Schaltflächen hinzugefügt, wird nicht ausgelöst die Zeiletut nicht lösen die Funktion showMenuAktion zu programmatisch erstellten uibuttons hinzufügen

ich ein TN-Objekt erstellen (von Klasse Topnav) in der Hauptansicht Datei und fügen Sie sie zu der Ansicht, aber die Menütaste löst nicht den Hahn

import Foundation 
import UIKit 

class TopNav{ 

    var topView: UIView = UIView() 
    var menuButton: UIButton = UIButton() 

    @objc func showMenu(sender: UIButton!) { 
     print("show Menu") 
    } 

    func position(){ 

     let bounds = UIScreen.main.bounds 
     let width = bounds.size.width 
     topView = UIView(frame: CGRect(x: 0.0, y: 0.0, width: width, height: 60.0)) 
     topView.backgroundColor = UIColor.init(colorLiteralRed: 66/255, green: 74/255, blue: 87/255, alpha: 1.0) 
     menuButton = UIButton(frame: CGRect(x: (width-40), y: 20.0, width: 30.0, height: 30.0)) 
     menuButton.setBackgroundImage(UIImage(named:"menu"), for: .normal) 
     menuButton.setTitle("", for: UIControlState.normal) 
     menuButton.addTarget(self, action: #selector(showMenu), for: .touchUpInside) 
     topView.addSubview(menuButton) 

    } 

} 
+2

Ihre Wähler ändern wie '#selector (self.showMenu (Absender :))' –

+0

dies half nicht, nach wie vor keine Fehler, aber das tut Menütaste Auslöser –

Antwort

2

Sie können versuchen, Dies.

class TopNav { 
    func position() { 
     ... 
     menuButton.addTarget(self, action: #selector(TopNav.showMenu), for: .touchUpInside) 
     ... 
    } 

    func showMenu() { 
     //your code 
    } 
} 
Verwandte Themen