2012-05-02 1 views
1

У меня есть UIbutton, который вызывает метод в том же классе, я использую @selector и передаю имя метода, устанавливаю точку прерывания и замечаю, что метод isn «т достигнуто на всех, я написал этот код и я думаю, что он работает правильно, но он никогда не достигает тела метода:UIButton @selector никогда не срабатывал, когда я нажимаю кнопку

- (IBAction)setEndTime:(id)sender { 
[self performSegueWithIdentifier:@"showEndTimePicker" sender:sender]; 
UIViewController *TimePickerVC=[self.storyboard instantiateViewControllerWithIdentifier:@"setEndTime"]; 
packtimePicker=(UIDatePicker*)[TimePickerVC.view viewWithTag:2]; 
NSLog(@"PickerTag%i",packtimePicker.tag); 
self.finishedTime=packtimePicker.date; 
//  NSLog(@"Date returned is ---> %@",finishedTime); 
UIButton *btn=(UIButton*)[TimePickerVC.view viewWithTag:3]; 
NSLog(@"Button Tag%i",btn.tag); 
[btn addTarget:self action:@selector(setSelectedValueToAttr:) forControlEvents:UIControlEventTouchUpInside]; 

метод:

-(void)setSelectedValueToAttr:(UIButton *) sender{ 
finishedTime=packtimePicker.date; 
NSLog(@"Time returned----> %@",finishedTime);} 
} 
+0

Вы проверили, установлен ли экземпляр btn как UIButton? –

ответ

0

вы проверили, если вы получите нужную кнопку назад? что отображается в вашем журнале? Это должно быть ButtonTag3 - это так?

Является ли метод setSelectedValueToAttr: в классе, на который ссылаются self?

Если все правильно, ваша кнопка, вероятно, просто не трогает вас из-за структуры вашего представления.

+0

да он вернулся 3 и метод setSelectedValueToAttr: это класс, на который ссылается сам – chostDevil

0

Попробуйте изменить название кнопки, чтобы подтвердить, что вы действительно возвращаетесь к кнопке, которую хотите.

[btn setTitle:@"test" forState:UIControlStateNormal]; 

Я не доверяю регистрации тегов, чтобы подтвердить, что вы возвращаете точную кнопку, которую, по вашему мнению, получаете. Это должно сузить проблему.

Также убедитесь, что для параметра userInteractionEnabled установлено значение YES для кнопки, и это родительские представления.

+0

У меня есть только одна кнопка в моем контроллере – chostDevil

+0

Я пробовал это, но это не меняло название кнопки !! что происходит – chostDevil

+0

есть твоя проблема :) ты возвращаешь другой объект, а не кнопку. – Joel

0

У вас определенно указаны неправильные теги. Ознакомьтесь с приведенным ниже примером, где я проверяю класс, прежде чем отправлять его в UIButton.

UIView *someView = [self.view viewWithTag:5]; 

    if([someView isKindOfClass:[UIButton class]]) 
    { 
     UIButton *button = (UIButton *) someView; 

     NSLog(@"uibutton"); 
    } 
    else 
    { 
     // some other control 
    } 
Смежные вопросы