【问题标题】:Problem in Datepicker and alertsheetDatepicker 和 alertsheet 中的问题
【发布时间】:2011-01-31 11:15:34
【问题描述】:

我正在实施 UIDATEPICKER。问题是,当我单击按钮时,会出现警报表并且 datepicker 添加为子视图,但我想要两个按钮,

1-取消 2-完成

我会怎么做?

UIActionSheet *aac = [[UIActionSheet alloc] initWithTitle:@"多少?" 代表:自己 取消按钮标题:无 破坏性按钮标题:无 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];

//// 它不起作用..我想要这个....

我会怎么做?

【问题讨论】:

  • 嗨,据我了解您的问题,尝试使用 UIView 动画效果呈现日期选择器,并带有一些延迟和持续时间,同样的逻辑适用于工具栏,确保它们同时出现...如果我理解正确,请告诉我。谢谢

标签: iphone


【解决方案1】:
-(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];


}

【讨论】:

  • Faraz@thax 很多,对我很有帮助
【解决方案2】:

也许你应该摆脱 UIActionSheet 并像我为另一个问题所做的那样做。

UIDatePicker pop up after UIButton is pressed

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-08-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-25
    • 2011-05-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多