[英]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.