2016-10-13 3 views
3

Я написал файл класса для создания topBar для моего приложения, я также добавляю кнопки в верхнюю панель после добавления цели на добавленные кнопки, то же самое не запускается строка menuButton.addTarget(self, action: #selector(showMenu), for: .touchUpInside) делает не вызвать функцию showMenuдобавить действие для программно созданных uibuttons

я создаю объект TN (из класса TopNav) в главном файле представления и добавить его к виду, но кнопка меню не вызывает кран

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

Изменить селектор типа '#selector (self.showMenu (отправителем :))' –

+0

это не помогло, до сих пор нет ошибок, но триггер не суммируется и не кнопка меню –

ответ

2

Вы можете попробовать это.

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

    func showMenu() { 
     //your code 
    } 
} 
Смежные вопросы