ios - 单击按钮时 UIDatePicker 不显示

标签 ios objective-c iphone uidatepicker

enter image description here我有一个 UIDatePicker,带有用于显示日期的标签和一个用于显示 Datepicker 的按钮。当我第一次单击该按钮时,它显示了 datepicker,但是在我设置日期并单击 done 按钮后,datepicker 被隐藏。然后当我再次单击显示日期选择器的按钮时,它没有显示。 这是我的代码:

#import "ViewController.h"

@interface ViewController ()

@property (strong, nonatomic) IBOutlet UIDatePicker *datepicker;
@property (strong, nonatomic) IBOutlet UIButton *btnDone;
@property (strong, nonatomic) IBOutlet UILabel *selectedDate;
@property (strong, nonatomic) IBOutlet UIToolbar *toolBar;

@end

@implementation ViewController
@synthesize btnDone,datepicker;

- (void)viewDidLoad {

    self.datepicker.hidden = YES;
    self.toolBar.hidden = YES;

    [self.datepicker addTarget:self action:@selector(datePickerChanged:) forControlEvents:UIControlEventValueChanged];
}

- (void)datePickerChanged:(UIDatePicker *)datePicker
{

    NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
    [dateFormatter setDateFormat:@"dd-MM-yyyy HH:mm"];
    NSString *strDate = [dateFormatter stringFromDate:datePicker.date];
    self.selectedDate.text = strDate;

}

- (void)didReceiveMemoryWarning
{

    [super didReceiveMemoryWarning];
        // Dispose of any resources that can be recreated.

}

- (IBAction)show:(id)sender 
{
     [UIView animateWithDuration:0.5
                           delay:0.1
                         options: UIViewAnimationOptionCurveEaseIn
                      animations:^{

                         self.datepicker.hidden = NO;
                         self.toolBar.hidden = NO;


                 }
                 completion:^(BOOL finished){

                 }];


    self.datepicker.hidden = NO;
    self.toolBar.hidden = NO;


}


-(IBAction)HidePicker:(id)sender{
    [UIView animateWithDuration:0.5
                     animations:^{
                         datepicker.frame = CGRectMake(0, -250, 320, 50);
                     } completion:^(BOOL finished) {
                         [datepicker removeFromSuperview];
                         [btnDone removeFromSuperview];
                         [_toolBar removeFromSuperview];
                 }];

[self.datepicker removeFromSuperview];

}

最佳答案

已解决:

#import "ViewController.h"

@interface ViewController ()

@property (strong, nonatomic) IBOutlet UIDatePicker *datepicker;
@property (strong, nonatomic) IBOutlet UIButton *btnDone;
@property (strong, nonatomic) IBOutlet UILabel *selectedDate;
@property (strong, nonatomic) IBOutlet UIToolbar *toolBar;

@end

@implementation ViewController
@synthesize btnDone,datepicker;

- (void)viewDidLoad {


    self.datepicker.hidden = YES;
    self.toolBar.hidden = YES;
    [self.datepicker addTarget:self action:@selector(datePickerChanged:) forControlEvents:UIControlEventValueChanged];

}

- (void)datePickerChanged:(UIDatePicker *)datePicker
{
    NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
    [dateFormatter setDateFormat:@"dd-MM-yyyy"];
    NSString *strDate = [dateFormatter stringFromDate:datepicker.date];
    self.selectedDate.text = strDate;
}

 - (void)didReceiveMemoryWarning
{
    [super didReceiveMemoryWarning];
        // Dispose of any resources that can be recreated.
}

- (IBAction)show:(id)sender
{
    [self.view addSubview:datepicker];
    self.toolBar.hidden = NO;
    self.datepicker.hidden = NO;
    self.btnDone.hidden=NO;
}


-(IBAction)HidePicker:(id)sender
{

    self.datepicker.hidden = YES;
    self.toolBar.hidden = YES;
    self.btnDone.hidden=YES;

}

关于ios - 单击按钮时 UIDatePicker 不显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34604462/

相关文章:

iphone - 在 UITableViewCell 中滑动删除有白色背景,需要清除

ios - 识别标签中显示的属性字符串中的图像点击

ios - CALayer 优化?

ios - 目标 Sharpie 因 SDK 头文件中的错误而失败

ios - DES解密问题

ios - 通过单击 Uitextview 或 UILabel 中的某个单词执行操作

iOS 触摸阻塞问题

ios - 将值传递给模态 UIViewController - Swift

ios - SDWebImage 找不到 SDImageCacheType

iphone - 在 Objective C 中更改字体样式 -(以全大写格式设置标签文本)