2016-03-19 6 views
9

मेरे ऐप में जब मैं बटन पर क्लिक करता हूं तो मैं UIDatePicker को प्रदर्शित करना चाहता हूं। और उस तारीख को UITextFiled में सहेज लिया गया। मैंने यह काम किया। मेरी समस्या तब होती है जब दिनांक पिकर प्रकट होता है वहां कोई बटन नहीं होता है, यह किया गया बटन कैसे जोड़ सकता है। अब तक मैंने कोशिश की।StoryPoard के माध्यम से DatePicker में "पूर्ण" बटन कैसे जोड़ें?

- (IBAction)pickerAction:(id)sender 
{ 
datePicker.datePickerMode=UIDatePickerModeDate; 
datePicker.hidden=NO; 
datePicker.date=[NSDate date]; 
[datePicker addTarget:self action:@selector(TextTitle:) forControlEvents:UIControlEventValueChanged]; 
[self.view addSubview:datePicker]; 
NSDateFormatter * df = [[NSDateFormatter alloc] init]; 
[df setDateFormat:@"M-d-yyyy"]; 
selectedDate.text=[df stringFromDate:datePicker.date]; 
} 

-(void)TextTitle:(id)sender 
{ 
NSDateFormatter *df = [[NSDateFormatter alloc] init]; 
[df setDateFormat:@"M-d-yyyy"]; 
selectedDate.text = [NSString stringWithFormat:@"%@", 
         [df stringFromDate:datePicker.date]]; 
} 

मैं इस कोड के साथ कैसे किया गया बटन जोड़ सकता हूं। कृपया मेरी मदद करें।

+0

यह स्टोरीबोर्ड के माध्यम से नहीं है लेकिन यहां तक ​​कि सबसे ज्यादा वोट दिया गया जवाब एक एक्सेसरी व्यू का उपयोग करना बहुत आसान है http://stackoverflow.com/questions/13700552/toolbar-at-the-top-of-uipickerview-in-xcode – DogCoffee

उत्तर

8

जवाब है

datePicker=[[UIDatePicker alloc]init]; 
datePicker.datePickerMode=UIDatePickerModeDate; 
[TextField1 setInputView:datePicker]; 

UIToolbar *toolBar=[[UIToolbar alloc]initWithFrame:CGRectMake(0, 0, self.view.frame.size.width, 44)]; 
[toolBar setTintColor:[UIColor grayColor]]; 
UIBarButtonItem *doneBtn=[[UIBarButtonItem alloc]initWithTitle:@"Done" style:UIBarButtonItemStyleBordered target:self action:@selector(ShowSelectedDate)]; 
UIBarButtonItem *space=[[UIBarButtonItem alloc]initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace target:nil action:nil]; 
[toolBar setItems:[NSArray arrayWithObjects:space,doneBtn, nil]]; 

[TextField1 setInputAccessoryView:toolBar]; 
+0

@ मैगिड। संपादन के लिए धन्यवाद। –

+1

डेट पिकर को कैसे खारिज करना है यह दिखाने के लिए एक अच्छा विचार हो सकता है। कैसे, TextField1.resignFirstResponder? मैंने नीचे देखा, कैसे पिकर ने दृश्य को एनिमेट करने के लिए विस्तृत दिनचर्या बनाई है। लेकिन इस्तीफा फर्स्ट रेस्पॉन्डर आपके लिए ऐसा करेगा, मान लें कि टेक्स्टफिल्ल्ड 1 में इसका इनपुट व्यू पिकर पर सेट है, जैसा कि इस उदाहरण में है। –

+0

धन्यवाद! यह सहायक था। – Raja

2

मैंने फ्रेम सेट के साथ अपने xib में 'किए गए' बटन के लिए UIBarButtonItem के साथ एक UIToolbar जोड़ा ताकि यह प्रारंभ में दिखाई नहीं दे रहा हो (वाई मान मूल दृश्य की ऊंचाई के बराबर)।

हर बार जब उपयोगकर्ता पिकर तक पहुंचता है, तो मैंने यूआईडीएटीपीकर के फ्रेम (वाई मान) को बदल दिया और यूआईटीूलबार को एनीमेशन के साथ बदल दिया ताकि यह कीबोर्ड के समान स्क्रीन के नीचे से पिकर के साथ स्लाइड हो सके।

नीचे अपना कोड देखें।

- (IBAction)showPicker 
{ 
    if(pickerVisible == NO) 
    { 
     // create the picker and add it to the view 
     if(self.datePicker == nil) self.datePicker = [[[UIDatePicker alloc] initWithFrame:CGRectMake(0, 460, 320, 216)] autorelease]; 
     [self.datePicker setMaximumDate:[NSDate date]]; 
     [self.datePicker setDatePickerMode:UIDatePickerModeDate]; 
     [self.datePicker setHidden:NO]; 
     [self.view addSubview:datePicker]; 

     // the UIToolbar is referenced 'using self.datePickerToolbar' 
     [UIView beginAnimations:@"showDatepicker" context:nil]; 
     // animate for 0.3 secs. 
     [UIView setAnimationDuration:0.3]; 

     CGRect datepickerToolbarFrame = self.datePickerToolbar.frame; 
     datepickerToolbarFrame.origin.y -= (self.datePicker.frame.size.height + self.datePickerToolbar.frame.size.height); 
     self.datePickerToolbar.frame = datepickerToolbarFrame; 

     CGRect datepickerFrame = self.datePicker.frame; 
     datepickerFrame.origin.y -= (self.datePicker.frame.size.height + self.datePickerToolbar.frame.size.height); 
     self.datePicker.frame = datepickerFrame; 

     [UIView commitAnimations]; 
     pickerVisible = YES; 
    } 
} 

- (IBAction)done 
{ 
    if(pickerVisible == YES) 
    { 
     [UIView beginAnimations:@"hideDatepicker" context:nil]; 
     [UIView setAnimationDuration:0.3]; 

     CGRect datepickerToolbarFrame = self.datePickerToolbar.frame; 
     datepickerToolbarFrame.origin.y += (self.datePicker.frame.size.height + self.datePickerToolbar.frame.size.height); 
     self.datePickerToolbar.frame = datepickerToolbarFrame; 

     CGRect datepickerFrame = self.datePicker.frame; 
     datepickerFrame.origin.y += (self.datePicker.frame.size.height + self.datePickerToolbar.frame.size.height); 
     self.datePicker.frame = datepickerFrame; 
     [UIView commitAnimations]; 

     // remove the picker after the animation is finished 
     [self.datePicker performSelector:@selector(removeFromSuperview) withObject:nil afterDelay:0.3]; 
    } 
} 
1

आप UIView का उपयोग कर सकते हैं और इस UIView में अपने Datepicker और Done बटन जोड़ें। हो गया बटन एक्शन इवेंट बनाएं और इसमें आप अपने UIView को छुपाएं और दिखाएंगे। इस मदद करता है

संबंधित मुद्दे