簡體   English   中英

當我單擊按鈕時,UIButton @selector從不操作

[英]UIButton @selector never actioned when I click on the button

我有一個在同一個類中調用方法的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);}
 }

您檢查過返回的按鈕是否正確嗎? 您的日志顯示什么? 應該是ButtonTag3是這樣嗎?

self引用的類中的setSelectedValueToAttr:方法是嗎?

如果一切正確,則由於您的視圖結構,您的按鈕可能只是沒有任何觸摸。

嘗試更改按鈕的標題,以確認您確實在找回想要的按鈕。

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

我不相信標記日志記錄來確認您返回的是您認為得到的確切按鈕。 這樣可以縮小問題的范圍。

另外,請確認該按鈕及其父視圖的userInteractionEnabled設置為YES。

您肯定分配了錯誤的標簽號。 請查看下面的示例,在該示例中,我將類強制轉換為UIButton之前進行了檢查。

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

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

        NSLog(@"uibutton");
    }
    else 
    {
        // some other control 
    }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM