Make a UIButton programmatically in Swift Make a UIButton programmatically in Swift swift swift

Make a UIButton programmatically in Swift


You're just missing the colon at the end of the selector name. Since pressed takes a parameter the colon must be there. Also your pressed function shouldn't be nested inside viewDidLoad.

override func viewDidLoad() {    super.viewDidLoad()    // Do any additional setup after loading the view, typically from a nib.    let myFirstLabel = UILabel()    let myFirstButton = UIButton()    myFirstLabel.text = "I made a label on the screen #toogood4you"    myFirstLabel.font = UIFont(name: "MarkerFelt-Thin", size: 45)    myFirstLabel.textColor = .red    myFirstLabel.textAlignment = .center    myFirstLabel.numberOfLines = 5    myFirstLabel.frame = CGRect(x: 15, y: 54, width: 300, height: 500)    myFirstButton.setTitle("✸", for: .normal)    myFirstButton.setTitleColor(.blue, for: .normal)    myFirstButton.frame = CGRect(x: 15, y: -50, width: 300, height: 500)    myFirstButton.addTarget(self, action: #selector(pressed), for: .touchUpInside)}@objc func pressed() {    var alertView = UIAlertView()    alertView.addButtonWithTitle("Ok")    alertView.title = "title"    alertView.message = "message"    alertView.show()}

EDIT: Updated to reflect best practices in Swift 2.2. #selector() should be used rather than a literal string which is deprecated.


Swift 2.2 Xcode 7.3

Since Objective-C String Literals are deprecated now for button callback methods

let button:UIButton = UIButton(frame: CGRectMake(100, 400, 100, 50))button.backgroundColor = UIColor.blackColor()button.setTitle("Button", forState: UIControlState.Normal)button.addTarget(self, action:#selector(self.buttonClicked), forControlEvents: .TouchUpInside)self.view.addSubview(button)func buttonClicked() {     print("Button Clicked")}

Swift 3 Xcode 8

let button:UIButton = UIButton(frame: CGRect(x: 100, y: 400, width: 100, height: 50))button.backgroundColor = .blackbutton.setTitle("Button", for: .normal)button.addTarget(self, action:#selector(self.buttonClicked), for: .touchUpInside)self.view.addSubview(button)func buttonClicked() {    print("Button Clicked")}

Swift 4 Xcode 9

let button:UIButton = UIButton(frame: CGRect(x: 100, y: 400, width: 100, height: 50))button.backgroundColor = .blackbutton.setTitle("Button", for: .normal)button.addTarget(self, action:#selector(self.buttonClicked), for: .touchUpInside)self.view.addSubview(button)@objc func buttonClicked() {    print("Button Clicked")}


Swift 4/5

let button = UIButton(frame: CGRect(x: 20, y: 20, width: 200, height: 60)) button.setTitle("Email", for: .normal) button.backgroundColor = .white button.setTitleColor(UIColor.black, for: .normal) button.addTarget(self, action: #selector(self.buttonTapped), for: .touchUpInside) myView.addSubview(button)@objc func buttonTapped(sender : UIButton) {                //Write button action here            }