정의 :
- UIDatepicker를 UIActionSheet에 삽입하고 UIActionSheet를 호출한다. 다만 옆 사항만 했을 경우 상단 Cancel, Done 버튼이 생성 되지 않기 때문에 UIActionSheet 창을 닫을 수가 없다.
- UIActionSheet 특성상 UIButton을 AddSubView 해도 보이지가 않기 때문에 위 두버튼은 UIButton으로 생성해 넣는 것이 아니라 UIToolBar를 생성하고 그 위에 UIBarButtonItem으로 생성해서 넣는다.
- UIActionSheet는 두 버튼을 이용해서 닫아야 함으로 멤버변수로 UIDatepicker도 Done 클릭 시 저장해야 함으로 멤버변수로 정의한다.
UIActionSheet *action;
UIDatePicker *datePicker;
- Cancel, Done 버튼으로 UIActionSheet를 닫을 때는 다음과 같이 구현한다.
[action dismissWithClickedButtonIndex:0 animated:YES];
구현 :
1. Popup Datepicker 생성부
action = [[UIActionSheet alloc] initWithTitle:@""
delegate:nil
cancelButtonTitle:nil
destructiveButtonTitle:nil
otherButtonTitles:nil];
datePicker = [[UIDatePicker alloc] initWithFrame:CGRectMake(0.0, 44.0, 0.0, 0.0)];
datePicker.datePickerMode = UIDatePickerModeDate;
datePicker.maximumDate = [NSDate date];
UIToolbar *datePickerToolbar = [[UIToolbar alloc] initWithFrame:CGRectMake(0, 0, 320, 44)];
datePickerToolbar.barStyle = UIBarStyleBlackOpaque;
[datePickerToolbar sizeToFit];
NSMutableArray *barItems = [[NSMutableArray alloc] init];
UIBarButtonItem *btnFlexibleSpace = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace
target:self action:nil];
[barItems addObject:btnFlexibleSpace];
[btnFlexibleSpace release];
UIBarButtonItem *btnCancel = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemCancel
target:self
action:@selector(doDatePickerCancelClick:)];
[barItems addObject:btnCancel];
[btnCancel release];
UIBarButtonItem *btnDone = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemDone
target:self
action:@selector(doDatePickerDoneClick:)];
[barItems addObject:btnDone];
[btnDone release];
[datePickerToolbar setItems:barItems animated:YES];
[barItems release];
[action addSubview:datePickerToolbar];
[action addSubview:datePicker];
[datePicker release];
[datePickerToolbar release];
2. Popup Datepicker 호출부
[action showInView:self.view];
[action setBounds:CGRectMake(0, 0, 320, 500)];
출처 : http://krazie99.blog.me/30094175499