Проблема в DatePicker и оповещении - PullRequest
0 голосов
/ 31 января 2011

Я использую UIDATEPICKER.Проблема в том, что когда я нажимаю на кнопку, появляется лист предупреждения, и средство выбора даты добавляется как подпредставление, но я хочу две кнопки,

1-отмена 2-сделано

что я буду делать?

UIActionSheet * aac = [[UIActionSheet alloc] initWithTitle: @ "Сколько?"делегат: self cancelButtonTitle: nil destructiveButtonTitle: nil otherButtonTitles: nil];

aac.actionSheetStyle = UIActionSheetStyleBlackOpaque;

sheet = aac;
UIDatePicker *theDatePicker = [[UIDatePicker alloc] initWithFrame:CGRectMake(0.0, 44.0, 0.0, 0.0)];
if(IsDateSelected==YES)
{
    theDatePicker.datePickerMode = UIDatePickerModeDate;
    theDatePicker.maximumDate=[NSDate date];
}else {
    theDatePicker.datePickerMode = UIDatePickerModeTime;
}

self.dtpicker = theDatePicker;
[theDatePicker release];
[dtpicker addTarget:self action:@selector(dateChanged) forControlEvents:UIControlEventValueChanged];

pickerDateToolbar = [[UIToolbar alloc] initWithFrame:CGRectMake(0, 0, 320, 44)];
pickerDateToolbar.barStyle = UIBarStyleBlackOpaque;
[pickerDateToolbar sizeToFit];

NSMutableArray *barItems = [[NSMutableArray alloc] init];

UIBarButtonItem *flexSpace = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFixedSpace target:self action:nil];
[barItems addObject:flexSpace];

UIBarButtonItem *cancelBtn = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemCancel target:self action:@selector(DatePickerCancelClick)];
[barItems addObject:cancelBtn];

//// это не работает .. Я хочу это .... enter image description here

что будетя делаю?

Ответы [ 2 ]

2 голосов
/ 10 февраля 2011
-(IBAction)DatePickerView
{
   iRolegameAppDelegate *appDelegate = (iRolegameAppDelegate *)[[UIApplication sharedApplication]delegate];

 pickerViewDate = [[UIActionSheet alloc] initWithTitle:@"How many?"
                                                delegate:self
                                       cancelButtonTitle:nil
                                  destructiveButtonTitle:nil
                                       otherButtonTitles:nil];

   theDatePicker = [[UIDatePicker alloc] initWithFrame:CGRectMake(0.0, 44.0, 0.0, 0.0)];
   theDatePicker.datePickerMode = UIDatePickerModeDateAndTime;

   NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
   [dateFormatter setFormatterBehavior:NSDateFormatterBehavior10_4];
   [dateFormatter setLocale:[[[NSLocale alloc] initWithLocaleIdentifier:@"en_US"]autorelease]];
     [dateFormatter setDateFormat:@"MM/dd/YY h:mm a"];
   [theDatePicker addTarget:self action:@selector(dateChanged) forControlEvents:UIControlEventValueChanged];


   pickerToolbar = [[UIToolbar alloc] initWithFrame:CGRectMake(0, 0, 320, 44)];
   pickerToolbar.barStyle=UIBarStyleBlackOpaque;
   [pickerToolbar sizeToFit];   



   NSMutableArray *barItems = [[NSMutableArray alloc] init];   
   UIBarButtonItem *flexSpace = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemDone target:self action:@selector(DatePickerDoneClick)];
   [barItems addObject:flexSpace];


   UIBarButtonItem *spacer = [[UIBarButtonItem alloc]
                              initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace
                              target:nil
                              action:nil];
   [barItems addObject:spacer];




   UIBarButtonItem *cancelBtn = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemCancel target:self action:@selector(DatePickerCancelClick)];
   [barItems addObject:cancelBtn];


   [pickerToolbar setItems:barItems animated:YES];       
   [pickerViewDate addSubview:pickerToolbar];
   [pickerViewDate addSubview:theDatePicker];
   [pickerViewDate  showInView:self.view];
   [pickerViewDate setBounds:CGRectMake(0,0,320, 464)];
   NSDateFormatter *currentdateformate = [[NSDateFormatter alloc] init];
   [currentdateformate setDateFormat:@"HH:MM, EEEE, dd-MMMM-yyyy"];
   appDelegate.timestamp1 = [currentdateformate stringFromDate:[theDatePicker date]];


   NSDateFormatter *currentdateformate1 = [[NSDateFormatter alloc] init];
   [currentdateformate1 setDateFormat:@"MMM dd, yyyy HH:mm"];
   self.updatedate = [currentdateformate1 stringFromDate:[theDatePicker date]];
}

-(IBAction)dateChanged{
   iRolegameAppDelegate *appDelegate = (iRolegameAppDelegate *)[[UIApplication sharedApplication]delegate];

   NSDateFormatter *currentdateformate = [[NSDateFormatter alloc] init];
   [currentdateformate setDateFormat:@"HH:MM, EEEE, dd-MMMM-yyyy"];

   appDelegate.timestamp1 = [currentdateformate stringFromDate:[theDatePicker date]];
   NSLog(@"%@",appDelegate.timestamp1);
   [currentdateformate setDateFormat:@"MMM dd, yyyy HH:mm"];
   self.updatedate = [currentdateformate stringFromDate:[theDatePicker date]];

}
-(void)DatePickerCancelClick
{
   self.pickerViewDate.hidden = YES;
   self.view.hidden = NO;
   [self.pickerViewDate dismissWithClickedButtonIndex:0 animated:YES];

}

-(BOOL)closeDatePicker:(id)sender{   
   //iRolegameAppDelegate *appDelegate = (iRolegameAppDelegate *)[[UIApplication sharedApplication]delegate];

   [pickerViewDate dismissWithClickedButtonIndex:0 animated:YES];
   [pickerToolbar release];
   [pickerViewDate release];
   //[SelectedTextField resignFirstResponder];   

   if([ self.updatedate isEqualToString:@"nil"]){
       NSDateFormatter *currentdateformate = [[NSDateFormatter alloc] init];
       [currentdateformate setDateFormat:@"MMM dd, yyyy HH:mm"];
       self.updatedate = [currentdateformate stringFromDate:[theDatePicker date]];
        [dateSelectButton setTitle:self.updatedate forState:UIControlStateNormal];
        self.updatedate = @"";
   }
   else{
       [dateSelectButton setTitle:self.updatedate forState:UIControlStateNormal];
        self.updatedate = @"";
   }

   return YES;
}

-(IBAction)DatePickerDoneClick{   
   [self closeDatePicker:self];


}
0 голосов
/ 31 января 2011

возможно, вам следует избавиться от UIActionSheet и сделать это так, как я сделал для другого вопроса.

UIDatePicker появляется после нажатия кнопки UIB

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...