2012-08-29 3 views
0

, когда я нажимаю на свою кнопку, могу успешно выбрать дату. Но когда я выбираю дату из даты, я не могу показать выбранную дату на UIbutton. плз помочь мнеКак показать выбранную дату на кнопке с помощью datepicker?

Вот мой код:

-(IBAction)btnDateClicked:(id)sender 
{ 
UIActionSheet *actionSheet1 = [[UIActionSheet alloc] initWithTitle:nil 
                  delegate:nil 
               cancelButtonTitle:nil 
              destructiveButtonTitle:nil 
               otherButtonTitles:nil]; 

[actionSheet1 setActionSheetStyle:UIActionSheetStyleBlackTranslucent]; 

CGRect pickerFrame = CGRectMake(0, 40, 0, 0); 


UIDatePicker *pView=[[UIDatePicker alloc] initWithFrame:pickerFrame]; 

pView.datePickerMode=UIDatePickerModeDate; 

NSDateFormatter *df=[[NSDateFormatter alloc] init]; 

[df setDateFormat:@"MM/dd/yyyy"]; 

// NSDate *date=[df dateFromString:self.hController.fromDateTime]; 

// [pView setDate:date animated:YES]; 

self.datePicker=pView; 

[actionSheet1 addSubview:self.datePicker]; 

[pView release]; 

UISegmentedControl *closeButton = [[UISegmentedControl alloc] initWithItems:[NSArray arrayWithObject:@"Done"]]; 

closeButton.momentary = YES; 

closeButton.frame = CGRectMake(260, 7.0f, 50.0f, 30.0f); 

closeButton.segmentedControlStyle = UISegmentedControlStyleBar; 

closeButton.tintColor = [UIColor blackColor]; 

[closeButton addTarget:self action:@selector(dismissActionSheet1:) forControlEvents:UIControlEventValueChanged]; 

[actionSheet1 addSubview:closeButton]; 

[closeButton release]; 

[actionSheet1 showInView:[[UIApplication sharedApplication] keyWindow]]; 

[actionSheet1 setBounds:CGRectMake(0, 0, 320, 485)]; 

self.actionSheet=actionSheet1; 

[actionSheet1 release]; 
} 
/////////////////////////////////// 
- (void)dismissActionSheet1:(id)sender 
{ 
[self.actionSheet dismissWithClickedButtonIndex:0 animated:YES]; 

NSDateFormatter *df=[[NSDateFormatter alloc] init]; 

[df setDateFormat:@"MM/dd/yyyy"]; 

//NSString *str=[df stringFromDate:self.datePicker.date]; 

//self.hController.selectDate=str;  
} 

ответ

1

вы должны использовать UIPickerViewDataSource,UIPickerViewDelegate методы this.Create массив ваших дат, которые вы показываете в выберите pickerView и используйте следующий метод.

- (void)pickerView:(UIPickerView *)pickerView didSelectRow: (NSInteger)row inComponent:(NSInteger)component 
{ 

[ closeButton setTitle:[NSString StringWithFormat:@"%@",[datesArray objectAtIndex:row]] forState:UIControlStateNormal]; 
} 
+0

Я хочу показать календарь в datepicker не массив дат –

+0

Вот точная ссылка для вас http: // stackoverflow. com/questions/4841205/xcode-saving-uidatepicker-to-be-display-in-a-label наслаждайтесь! – SriKanth

1

Добавьте метку, как подвид к кнопке на которой нажмите событие pickerview является shown.on дата выбора из выбора даты обновить текст метки к выбранной дате

+0

Рад видеть вас здесь^_^ –

0

используйте это, чтобы обновить название на кнопку

[ closeButton setTitle:str forState:UIControlStateNormal]; 
+0

Что такое str? PLZ предоставить код для str –

+0

Он работал для меня, чем так много –

+0

принять ответ, если он помог вам –

0

ли подключение кнопки с помощью IBOutlet и затем в следующем методе установить текст кнопки с помощью

- (void)pickerView:(UIPickerView *)pickerView didSelectRow: (NSInteger)row inComponent:(NSInteger)component 
    { 
     [ closeButton setTitle:[NSString StringWithFormat:@"%@",[datesArray objectAtIndex:row]] forState:UIControlStateNormal]; 

    } 

И вы сделали :)

 Смежные вопросы

  • Нет связанных вопросов^_^