2013-08-05 1 views
0

이 사용자 정의 클래스 EAActionSheetPicker을 사용하여 날짜 선택기와 시간대 선택기가있는 작업 시트를 만들고 표시합니다. - 내가 종료 날짜 버튼을 클릭하여 나에게 날짜 선택과 액션 시트를 표시해야 할 때 EAActionSheetPicker가 시간 선택기를 표시하지 않습니다

enter image description here

그래서 그것은 간단하다

아래 화면이보기에 대한 스토리 보드입니다. 마찬가지로 시간 버튼을 탭하면 피커가 시간 만 표시되지만 피커에는 날짜가 표시됩니다 (종료 날짜와 동일). 그러나 대리자 메서드에서 이상한 일이 발생합니다. EAActionSheetPicker:didDismissWithSelection:inTextField:textField - 피커가 날짜 또는 시간 모드인지 여부를 결정하고 각각에 대해 올바른 값을 기록합니다 (아래 코드).

- (IBAction)endDateSelectionButton:(UIButton *)sender 
{ 
    // Initialization of custom date picker 
    self.endDatePicker = [[EAActionSheetPicker alloc] initWithDatePickerMode:UIDatePickerModeDate]; 

    // Setting style for action sheet 
    [self.endDatePicker setActionSheetStyle:UIActionSheetStyleBlackOpaque]; 

    // Setting data mode for picker to be only date without time 
    [self.endDatePicker setDateMode:UIDatePickerModeDate]; 

    // Uncomment this if you ever want a title 
    // [self.endDatePicker setTitle:@"Choose end date"]; 

    self.endDatePicker.delegate = self; 

    // Showing in superview because of the tab bar controller 
    [self.endDatePicker showInView:[self.view superview]]; 
} 

// Something doesn't work with time mode 
- (IBAction)timeSelectionButton:(UIButton *)sender 
{ 
    self.timePicker = [[EAActionSheetPicker alloc] initWithDatePickerMode:UIDatePickerModeTime]; 
    [self.timePicker setActionSheetStyle:UIActionSheetStyleBlackOpaque]; 
    [self.timePicker setDateMode:UIDatePickerModeTime]; 

    self.timePicker.delegate = self; 
    [self.timePicker showInView:[self.view superview]]; 
} 

// Delegates method for getting picked date 
- (void)EAActionSheetPicker:(EAActionSheetPicker *)actionSheet didDismissWithSelection:(id)selection inTextField:(UITextField *)textField 
{ 
    // Determining if action sheet date mode is date or time for new project options 
    if (actionSheet.dateMode == UIDatePickerModeDate) { 
     // Init date formatter for changing the date output for database 
     NSDateFormatter *formatter = [[NSDateFormatter alloc] init]; 
     // Setting data format to be: day-month-year 
     [formatter setDateFormat:@"dd-MM-yyyy"]; 
     NSString *endDate = [formatter stringFromDate:selection]; 
     self.endDate = selection; 

     // Setting button title to display selected date 
     [self.endDateButton setTitle:endDate forState:UIControlStateNormal]; 
    } else if (actionSheet.dateMode == UIDatePickerModeTime) { 
     NSLog(@"TIME..."); 
    } 
} 

답변

0

나는 EAActionStyleSheet 원래 코드에서 버그를 발견하고 자신에 대한 정확한 수를 chenge.