我有一个表格视图,显示在一个模态中,其中有几个静态单元格显示开始日期和结束日期。
当我点击它们时,我想要显示UIDatePicker。目前,当我点击该行时没有任何反应。我错过了什么?
这是我的didSelectRowAtIndexPath:
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
UITableViewCell *selectedCell = [tableView cellForRowAtIndexPath:indexPath];
self.pickerView.date = [self.dateFormatter dateFromString:selectedCell.detailTextLabel.text];
// check if date picker already on screen
if (self.pickerView.superview == nil) {
[self.view.window addSubview:self.pickerView];
// size up the picker view to fit our screen and compute animation
//
//compute the start frame
CGRect screenRect = [[UIScreen mainScreen] applicationFrame];
CGSize pickerSize = [self.pickerView sizeThatFits:CGSizeZero];
CGRect startRect = CGRectMake(0.0,
screenRect.origin.y + screenRect.size.height,
pickerSize.width,
pickerSize.height
);
self.pickerView.frame = startRect;
//computer end frame
CGRect pickerRect = CGRectMake(0.0,
screenRect.origin.y + screenRect.size.height - pickerSize.height,
pickerSize.width,
pickerSize.height
);
// start the slide up animation
[UIView beginAnimations:nil context:NULL];
[UIView setAnimationDuration:0.3];
// we need to perform some post operations after the animation is complete
[UIView setAnimationDelegate:self];
self.pickerView.frame = pickerRect;
// shrink the table vertical size to make room for the date picker
CGRect newFrame = self.tableView.frame;
newFrame.size.height -= self.pickerView.frame.size.height;
self.tableView.frame = newFrame;
[UIView commitAnimations];
// add the "Done" button to the nav bar
self.navigationItem.rightBarButtonItem = self.doneButton;
} }
答案 0 :(得分:0)
愚蠢的错误。我在我的头文件中将pickerView属性设置为弱而不是强:
这样:
@property (weak, nonatomic) IBOutlet UIDatePicker *pickerView;
实际应该是这样的:
@property (strong, nonatomic) IBOutlet UIDatePicker *pickerView;