【问题标题】:DatePicker value not changing after even changedDatePicker 值即使更改后也不会更改
【发布时间】:2012-08-21 11:54:51
【问题描述】:
-(IBAction)showDate:(id)sender
{
datePicker = [[UIDatePicker alloc] initWithFrame:CGRectMake(0, 220, 325, 300)];
datePicker.datePickerMode = UIDatePickerModeDate;
datePicker.hidden = NO;
datePicker.date = [NSDate date];
[datePicker setDate:datePicker.date animated:YES];
[self.view addSubview:datePicker];
}



- (void)setDate:(NSDate *)date animated:(BOOL)animated
{
NSDateFormatter *df = [[NSDateFormatter alloc] init];
[df setDateFormat:@"dd/MM/yyyy"];
NSString *str = [df stringFromDate:date];
NSLog(@"String is------:%@",str);
[dateBtn setTitle:str forState:UIControlStateNormal];
}

我已经通过了 Apple 文档中的 UIDatePicker 类参考。基于我已经实现了上述代码。当外部方法代码以按钮操作编写时,我只获得按钮上的当前日期,如果我是,则不会更改日期更改日期选择器。

如果我像上面提到的那样编写代码,我什至可以在按钮上获得任何标题。 我想,我犯了一个错误的错误,谁能告诉我错误在哪里并详细解释我。

非常感谢您提前提供的帮助。

【问题讨论】:

    标签: iphone datepicker xcode4.2


    【解决方案1】:

    我认为您对子类化感到困惑,这是您在这里没有做的事情(也不需要)。您需要设置日期选择器以在日期更改时调用您选择的方法;像这样:

    [datePicker addTarget:self
                   action:@selector(dateChanged:)
         forControlEvents:UIControlEventValueChanged];
    

    (见reference)。

    然后实现方法:

    - (void)dateChanged:(UIDatePicker*)datePicker {
        NSLog("Date changed: %@", datePicker.date);
    }
    

    【讨论】:

    • 抱歉,如果我使用此代码更改 datePicker,我的应用程序将崩溃。
    • @iPhoneNewBie 崩溃在哪里?
    • 在选择日期选择器并在控制台中收到消息为“无法识别的选择器发送到实例 0x7691690”
    • @iPhoneNewBie 好的,您输错了@selector(dateChanged:)- (void)dateChanged:(id)sender。我怀疑你错过了:...
    • 是的。对不起,我明白了@trojanfoe。你能告诉我如何将该日期转换为字符串吗?我需要在按钮上显示该日期作为标题或文本。请帮帮我。
    【解决方案2】:

    试试这个代码:

    -(void)timepicker:(UIGestureRecognizer *)date{
    
        CGRect pickerFrame = CGRectMake(0,200,0,0);
    
        myPicker = [[UIDatePicker alloc] initWithFrame:pickerFrame];
        [myPicker setBackgroundColor:[UIColor groupTableViewBackgroundColor]];
        [myPicker addTarget:self action:@selector(pickerChanged:)               forControlEvents:UIControlEventValueChanged];
        [self.view addSubview:myPicker];
    
    
    }
    - (void)pickerChanged:(id)sender{
    
        NSLog(@"value: %@",[sender date]);
    
        NSDateFormatter *df = [[NSDateFormatter alloc] init];
    
        df.dateStyle = NSDateFormatterMediumStyle;
    
        NSString *date=[NSString stringWithFormat:@"%@",[sender date]];
    
        NSLog(@"value1: %@",date);
    
       }
    

    【讨论】:

      猜你喜欢
      • 2020-11-18
      • 2023-03-20
      • 2013-03-29
      • 2021-11-22
      • 2021-07-26
      • 1970-01-01
      • 2019-04-22
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多