[英]Incompatible pointer types assigning to 'UIDatePicker *' from 'UIPopoverController *'
我正在嘗試調整本文的第一個答案: 如何使用StoryBoard在iPad上的Popover中顯示UIDatePicker?
這是我改編的代碼(datePicker在viewDidLoad中初始化):
CGRect pickerFrame = CGRectMake(0, 0, 320, 216);
datePicker = [[UIDatePicker alloc] initWithFrame:pickerFrame];
datePicker.datePickerMode = UIDatePickerModeDate;
- (IBAction)btnSurveyDate:(UIButton *)sender
{
//Build custom popover view.
UIView *v = [[UIView alloc] init];
[v addSubview:datePicker];
UIViewController *popoverContent = [[UIViewController alloc] init];
popoverContent.view = v;
//Resize the popover view shown in the current view to the view's size.
popoverContent.preferredContentSize = CGSizeMake(320, 216);
//Create a popover controller with my DatePickerViewController in it.
UIPopoverController *poDate = [[UIPopoverController alloc] initWithContentViewController:popoverContent];
//Set the delegate to self to receive the data of the DatePicker in the popover.
poDate.delegate = self;
//Present the popover.
[poDate presentPopoverFromRect:self.txtSurveyDate.frame
inView:self.view
permittedArrowDirections:UIPopoverArrowDirectionAny
animated:YES];
datePicker = poDate;
}
- (void)popoverControllerDidDismissPopover:(UIPopoverController *)popoverController
{
NSDateFormatter *df = [[NSDateFormatter alloc] init];
[df setDateFormat:@"dd/MM/yyyy"];
NSString *dt = [df stringFromDate:datePicker.date];
self.txtSurveyDate.text = [NSString stringWithFormat:@"%@",dt];
}
但是,有兩個問題。 首先,我在最后一行收到編譯器警告:
datePicker = poDate;
錯誤是:
Incompatible pointer types assigning to 'UIDatePicker *' from 'UIPopoverController *'
其次,關閉彈出窗口時,應用程序崩潰,並顯示以下錯誤:
unrecognized selector sent to instance
該應用程序在popoverControllerDidDismissPopover方法的這一行停止:
NSString *dt = [df stringFromDate:datePicker.date];
poDate
是實例UIPopoverController
,而datePicker
是類型變量UIDatePicker
,這就是為什么你在該行警告。
因此,在這一行(程序崩潰的地方):
NSString *dt = [df stringFromDate:datePicker.date];
date
消息將發送到datePicker
,后者實際上是UIPopoverController
一個實例。 Popover控制器沒有date
方法,因此程序崩潰。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.