titlelabel guidelines color buttons ios swift uiview uibutton swift2

guidelines - menu ios



UIButton en Swift 2.2. ¿Cómo agregar un objetivo diferente? (3)

Creé el botón en el código.

let item = UIButton() item.setImage(UIImage(named: "Menu"), forState: .Normal) view.addSubview(item)

¿Cómo puedo agregar el objetivo de otro VC?

Intenté muchas cosas, pero no está compilado.

Método menuButtonAction () de OtherClass

Errores:

item.addTarget(otherClassVar, action: #selector(OtherClass.menuButtonAction), forControlEvents: .TouchUpInside) item.addTarget(otherClassVar, action: #selector(OtherClass.menuButtonAction(_:)), forControlEvents: .TouchUpInside)

ese método llama al selector inmediatamente:

item.addTarget(otherClassVar, action: Selector(OtherClass.menuButtonAction()), forControlEvents: .TouchUpInside)


Está intentando establecer menuButtonAction como selector static/class , pero como creo que es un método de instancia, ya que no está marcado por static/class palabra clave static/class

Pruebe esto en su lugar:

item.addTarget(otherClassVar, action: #selector(otherClassVar.menuButtonAction), forControlEvents: .TouchUpInside)


Espero que te ayude.....

let button = UIButton(type: UIButtonType.RoundedRect) as UIButton button.frame = CGRectMake(20, 20, 100, 150) button.backgroundColor = UIColor(red:125/255.0, green: 125/255.0, blue: 125/255.0, alpha: 1.0) button.setTitle("Test Button", forState: UIControlState.Normal)//Highlighted here you can change state.... button.addTarget(self, action: "buttonAction:", forControlEvents: UIControlEvents.TouchUpInside) self.view.addSubview(button)

y luego llamar a la función ...

func buttonAction(sender:UIButton!) { print("welcome to swift 2.2") }


SWIFT 2.2 o más nuevo:

yourButton.addTarget(self, action: #selector(TheClassName.runThis(_:)), forControlEvents: UIControlEvents.TouchUpInside)

Supongo que es obvio que la función que desea ejecutar debe implementarse en la clase desde la que desea ejecutarla. La esperanza es lo suficientemente clara.

func runThis(sender: AnyObject) { // ... }