Programmatically code UIButton action

ios, ipad, iphone, objective-c, uibutton

Solution

Watch these three lines of code:

hard1.layer.cornerRadius = 10;
hard1.clipsToBounds = YES;
[hard1 addTarget: self
          action: @selector(buttonClicked:)
forControlEvents: UIControlEventTouchUpInside];

You are missing self. in all three. They should be:

self.hard1.layer.cornerRadius = 10;
self.hard1.clipsToBounds = YES;
[self.hard1 addTarget: self
          action: @selector(buttonClicked:)
forControlEvents: UIControlEventTouchUpInside];

Also, if you are creating it programatically, it shouldn't be an IBAction (IB stands for interface builder and this is not created in interface builder).

Problem

I'm trying to create a button, which once tapped will show a popover of another UIView. To test this out, I have the following code in my viewDidLoad section: ``` - (void)viewDidLoad { [super viewDidLoad]; self.hard1 = [UIButton buttonWithType:UIButtonTypeCustom]; [self.hard1 setFrame:CGRectMake(884, 524, 105, 60)]; // set the x,y,width and height based on your specs UIImage *buttonImage = [UIImage imageNamed:@"green.jpg"]; hard1.layer.cornerRadius = 10; hard1.clipsToBounds = YES; [hard1 addTarget: self action: @selector(buttonClicked:) forControlEvents: UIControlEventTouchUpInside]; [self.hard1 setImage:buttonImage forState:UIControlStateNormal]; [self.view addSubview:self.hard1]; } ``` and further down: ``` - (IBAction) buttonClicked: (id)sender { NSLog(@"Tap"); } ``` however, the console does not log 'Tap' when I hit the button. Any ideas?

Original source

Related problems