簡體   English   中英

EAActionSheetPicker不顯示時間選擇器

[英]EAActionSheetPicker doesn't show time picker

我使用此自定義類EAActionSheetPicker來創建和顯示操作表,其中選擇器用於日期,第二個用於時間。

以下屏幕是此視圖的情節提要:

在此處輸入圖片說明

如此簡單-當我單擊“結束日期”按鈕時,應該向我顯示帶有日期選擇器的操作表。 類似地,當我點擊“時間”按鈕時,它應該只顯示帶有時間的選擇器,但是它顯示帶有日期的選擇器(與“結束日期”相同)。 但是,奇怪的事情發生在EAActionSheetPicker的委托方法中: 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...");
    }
}

我在EAActionStyleSheet原始代碼中發現了該錯誤,並對其進行了修正以使其對自己正確。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM