Как показать выбранную дату на кнопке с помощью средства выбора даты?

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

Вот мой код:

-(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;    
}

person Community    schedule 29.08.2012    source источник


Ответы (4)


Для этого вы должны использовать методы UIPickerViewDataSource,UIPickerViewDelegate. Создайте массив ваших дат, который вы показываете в pickerView, и используйте следующий метод.

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

[ closeButton setTitle:[NSString StringWithFormat:@"%@",[datesArray objectAtIndex:row]] forState:UIControlStateNormal];
}
person SriKanth    schedule 29.08.2012
comment
Я хочу показать календарь в средстве выбора даты, а не массив дат - person ; 29.08.2012
comment
Вот точная ссылка для вас stackoverflow.com/questions/4841205/ наслаждайтесь! - person SriKanth; 29.08.2012

Добавьте некоторую метку в качестве подпредставления к кнопке, на которой отображается средство выбора событий щелчка. При выборе даты из средства выбора даты обновите текст метки до выбранной даты.

person Pratyusha Terli    schedule 29.08.2012

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

[ closeButton setTitle:str forState:UIControlStateNormal];
person Dushyant Singh    schedule 29.08.2012

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

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

     }

И готово :)

person Rohit    schedule 29.08.2012