2012-08-24 36 views
5

enter image description here的UIDatePicker選擇的值是錯誤的情況下的UIDatePicker沒有滾動

我正在在我使用UIDatePicker一個iPhone應用程序,並顯示所選擇的actionsheet的時間。在操作表中,時間間隔顯示爲10點。

textfield值是否設置正確,當我滾動Datepicker

如果我滾動的動作片然後選擇按鈕直接點擊即可文本字段設置當前時間(11:56)但我選擇了行動表(11:50)時間。 (textfield)顯示不正確的值。

如何設置textfield的值(11:50)。給我一些解決方案。

+0

的NSLog你選擇的值即youdatepicker.date –

+0

選擇[12:30]和nslog 12:37如果我不滾動....如果我滾動然後[selcet 12:30] .. nslog 12:30 –

回答

1

編輯 讓您的課程在您的選擇器中處理UIControlEventValueChanged事件。加入這一行viewDidLoad方法或當看到你的actionsheet:

[picker addTarget:self action:@selector(dateChanged:) 
      forControlEvents:UIControlEventValueChanged]; 

現在選擇會當日期更改

UPDATE

- (void) dateChanged:(id)sender{ 
    // handle date changes and set in textField 
    NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init]; 
    NSString *strdate = [dateFormatter stringFromDate:self.datePicker.date]; //provide your selected date here 
    self.dateTexField.text = strdate; 
} 

如果上述方法不叫被稱爲是指日期沒有改變,所以總是在你的textField中設置默認日期。


轉換日期爲字符串對象

UPDATE

NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init]; 
NSString *strdate = [dateFormatter stringFromDate:self.datePicker.date]; //provide your selected date here 

現在設置值文本框是這樣的:

self.dateTextField.text = strdate; 
+0

我這樣做..這將工作正確,當我滾動。但不是在這種情況下,當我直接點擊選擇按鈕 –

+1

不工作你的代碼:( –

1

只需使用日期選取器後設置dateSelected選擇按鈕按....

NSDate *date = datePicker.date; 
NSDateFormatter *formatter = [[NSDateFormatter alloc] init]; 
[formatter setDateFormat:@"dd/MM/yyyy"];  
NSString *dateString = [formatter stringFromDate:date]; 
yourTxtField.text = dateString; 
0

我認爲最簡單的方法就是將具有完成按鈕的工具欄附加到具有UIDatePicker作爲其inputView的TextField上。通過在TextViewDidBeginEditing中維護對它的引用來跟蹤當前的TextField。然後,在完成按鈕做這樣的事情:

if (_currentTextField == _myTextFieldThatUsesADatePicker) { 
    self.myDateProperty = _myDatePicker.date; 
} 
0

我不知道這樣對不對,但它的工作對我來說

-(void)selectedTime{ 
    NSDateFormatter *outputFormatter = [[NSDateFormatter alloc] init]; 
// [outputFormatter setDateFormat:@"h:mm a"]; 
    [outputFormatter setDateFormat:@"HH:mm:ss"]; 
    selectedTime = [outputFormatter stringFromDate:datePicker.date]; 
    NSArray *temp=[selectedTime componentsSeparatedByString:@":"]; 
    NSLog(@"%@",temp); 
    NSInteger mins=[[temp objectAtIndex:1]integerValue]; 
    //check your interval here 
    if (mins<=29) { 
     selectedTime=[NSString stringWithFormat:@"%@:%@:%@",[temp objectAtIndex:0],@"00",@"00"]; 
    }else if (mins>=31 && mins<=59){ 
     selectedTime=[NSString stringWithFormat:@"%@:%@:%@",[temp objectAtIndex:0],@"30",@"00"]; 
    }else{ 
//  selectedTime = [outputFormatter stringFromDate:datePicker.date]; 
    } 
    if (self.delegate && [self.delegate respondsToSelector:@selector(SelectedValue:)]) { 
     [self.delegate SelectedValue:selectedTime]; 
    } 
    [self.popupController dismiss]; 
} 

我的時間間隔爲30分鐘