2013-02-24 16 views
7

Bir kez, başka bir UIView'in popover'ını gösterecek bir düğme oluşturmaya çalışıyorum.Program aracılığıyla UIButton eylem kodu

- (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]; 
} 

ve aşağı ilerletmek: Bu test etmek için, benim viewDidLoad bölümünde aşağıdaki kodu var ben düğmesine vurduğunda

- (IBAction) buttonClicked: (id)sender 
{ 
    NSLog(@"Tap"); 
} 

ancak konsol 'dokunun' kütüğe. Herhangi bir fikir?

cevap

12

kod bu üç satırları İzle olmalı ... işe yaramaz: Sen kendini eksik

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

. her üçte. Onlar olmalıdır: programlama yoluyla bunu oluşturuyorsanız

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

Ayrıca, bir IBAction (IB arayüz oluşturucu anlamına gelir ve bu arayüz Oluşturucu ile oluşturulmuş değildir) olmamalıdır.

+0

Ah bana aptalca. Çok teşekkür ederim! –

+1

Şimdi üzerinde olduğum. Bir özellik oluşturduğunuzda bunu sentezleyin: @synthesize hard1 = _hard1; Bu şekilde mülke atıfta bulunan "hard1" çalışmaz. Ya self.hard1 ya da _hard1 (sadece setter metodunda kullanılacaktır) – Odrakir

+0

Yardımınız için çok teşekkürler –

0

Olay yanıtlayıcısını buttonClicked olarak ayarladınız, ancak IBAction'da buttonTap tanımladınız. Bu tabii ki

O

[hard1 addTarget: self 
       action: @selector(buttonTap:) 
    forControlEvents: UIControlEventTouchUpInside]; 
+0

self.hard1 için değiştirin. Gerçek kodum yukarıda düzenlenmiş, hala çalışmıyor. –

3
self.hard1 = [UIButton buttonWithType:UIButtonTypeCustom]; 


[hard1 addTarget: self 
       action: @selector(buttonClicked:) forControlEvents: UIControlEventTouchUpInside]; 

hard1 bir yazım hatası yapılmış

İlgili konular