UIDatePicker,UIActionSheet和数据处理

时间:2011-12-13 14:22:38

标签: xcode4 ios5 uidatepicker uiactionsheet

所以我理解如何从日期选择器中提取日期就好了。但我似乎无法从UIActionSheet上的日期选择器中提取它。我们当前的设置是一个用几个选择器输入数据的表单,所有这些都使用数据源的didSelectRow方法,所有这些方法都使用相同的视图来表示所述数据源。

现在看来,这对于UIDatePicker不起作用。以下是我迄今为止的日期选择器,它与我的其他选择器类似,包括处理值更改的方法。

-(IBAction)ageBox{
    pickerAction=[[UIActionSheet alloc]initWithTitle:nil delegate:nil cancelButtonTitle:nil destructiveButtonTitle:nil otherButtonTitles:nil];
    [pickerAction setActionSheetStyle:UIActionSheetStyleBlackTranslucent];
    CGRect pickerFrame = CGRectMake(0, 40, 0, 0);

    UIDatePicker *datePicker =[[UIDatePicker alloc]initWithFrame:pickerFrame];

    [pickerAction addSubview:datePicker];

    UISegmentedControl *closeButton=[[UISegmentedControl alloc]initWithItems:[NSArray arrayWithObject:@"OK"] ];
    closeButton.momentary = YES;
    closeButton.frame=CGRectMake(260, 7.0f, 50.0f, 30.0f);
    closeButton.segmentedControlStyle =UISegmentedControlStyleBar;
    closeButton.tintColor = [UIColor blackColor];
    date = datePicker.date;
    [closeButton addTarget:self action:@selector(closePicker) forControlEvents:UIControlEventValueChanged];
    [pickerAction addSubview:closeButton];
    whatToChange = 5;
    [pickerAction showInView:self.view];
    [pickerAction setBounds:CGRectMake(0, 0, 320, 464)];
}

任何帮助从日期选择器中提取日期的帮助,或者当我点击确定时,在它被销毁之前将其拉出来?

1 个答案:

答案 0 :(得分:1)

我假设pickerActionivar self,基于方法中的第一行代码。我可以想到几种方式,我相信还有更多。

1)同时将datePicker设为ivar。这样,您就可以使用'ok'方法来引用它。

2)从pickerAction本身获取参考。由于您已将datePicker添加为subview,因此您可以这样找到:

    // Somewhere in your "ok" method
    for (UIView *view in pickerAction.subviews) {
        if ([view isKindOfClass:[UIDatePicker class]]){
            UIDatePicker *picker = (UIDatePicker *)view;
            NSDate *pickedDate = picker.date;
        }
    }