3 개의 텍스트 필드와 UIDatePicker가있는 iOS 앱에서 작업하고 있습니다.iOS DatePicker 데이터를 텍스트 필드
DatePicker에서 시간을 선택하면 TextField 위에 표시해야하지만 작동하도록 설정할 수는 없습니다. Login.h
#import <UIKit/UIKit.h>
@interface Login : UIViewController<UIPickerViewDelegate>
{
}
@property (weak) IBOutlet UILabel * label;
@property (weak) IBOutlet UITextField * username;
@property (weak) IBOutlet UITextField * password;
@property (weak) IBOutlet UITextField * birth;
@property (weak) IBOutlet UIButton * entrar;
@property (weak) IBOutlet UIDatePicker * data;
@property (strong, nonatomic) NSDate *dateOfBirth;
@property (strong, nonatomic) NSDateFormatter * dateFormatter;
@property (strong, nonatomic) NSString * etiqueta;
@property (strong, nonatomic) NSString * eti;
@property (strong, nonatomic) NSString * dates;
-(id) initWithBirth: (NSDate *) dateOfBirth;
-(IBAction) displayDate: (id) sender;
@end
Login.m
#import "Login.h"
@interface Login()
@end
@implementation Login
-(void) viewdDidLoad{
[super viewDidLoad];
[email protected]"";
self.label.text=self.eti;
_etiqueta = @"Introdueix el teu nom d'usuari, la contrasenya, i la teva data de naixement";
self.label.text = self.etiqueta;
self.data = [[UIDatePicker alloc] init];
[_data setDate:[NSDate date]];
[self.data addTarget:self action:@selector(updateTextField:) forControlEvents:UIControlEventValueChanged];
[self.birth setInputView:_data];
self.data.datePickerMode = UIDatePickerModeDate;
self.data.hidden = NO;
self.data.date = [NSDate date];
self.dateFormatter = [[NSDateFormatter alloc] init];
self.dateFormatter.dateStyle = NSDateFormatterLongStyle;
[self.view addSubview:self.data];
UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc] initWithTarget:self
action:@selector(dismissKeyboard)];
[self.view addGestureRecognizer:tap];
NSDate * now = [NSDate date];
[_data setDate:now animated:YES];
_birth.text = [now description];
[self.dateFormatter stringFromDate: _dateOfBirth];
}
-(void)datePickerDidChangeDate:(id)sender
{
NSLog(@"%@",self.data.date);
self.birth.text=[NSString stringWithFormat:@"%@",self.data.date.description];
}
-(NSString *)formatDate:(NSDate *) date
{
NSDateFormatter * dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateStyle: NSDateFormatterShortStyle];
[dateFormatter setDateFormat:@"MM'/'dd'/'yyyy"];
NSString * formattedDate = [dateFormatter stringFromDate: date];
return formattedDate;
//NSDate *yesterdaydate=[NSDate dateWithTimeIntervalSinceNow:obj];
}
-(void)dismissKeyboard {
[_username resignFirstResponder];
[_password resignFirstResponder];
[_birth resignFirstResponder];
}
-(id) initWithBirth:(NSDate *)dateOfBirth
{
if (self = [super init]){
_dateOfBirth = dateOfBirth;
}
return self;
}
-(IBAction) displayDate:(id)sender{
NSDate * selected = [_data date];
NSString * dates = [selected description];
_birth.text = dates;
}
-(IBAction) selector:(id)sender
{
if (_username.text.length == 0 || _password.text.length == 0 || _birth.text.length == 0)
{
[[[UIAlertView alloc] initWithTitle:@"Alerta!"
message:@"Algun camp està buit!"
delegate: nil
cancelButtonTitle:@"Cancelar"
otherButtonTitles:nil
] show];
}
else{
[self performSegueWithIdentifier: @"Menu" sender:self];
}
}
@end
는사람이 나를 어떻게 알아낼 수 있습니다 : 여기
내 파일입니다 나는 풀 수있다. 이 문제?EDIT : 입력 된 날짜가 오늘 날짜가 아니라는 것을 확인하는 "if"메소드를 어떻게 프로그램 할 수 있는지 알고 싶습니다. 즉, 5 월 9 일이 아닌 5 월 8 일을 입력했습니다. .
"오늘은 < 일 경우"와 같은 것입니다.
대단히 감사합니다.
가능한 중복 http://stackoverflow.com/questions/11197855/iphone- display-date-picker-on-textfield-click) – codercat
날짜 선택 도구를 초기화하지 않습니다 ... – karthikeyan
'UILabel * label; UIDatePicker * data;'이 줄과 모든''data''를'_data '로 변경합니다. 실제 날짜 선택 도구 대신 초기화되지 않은 변수를 사용하는 것 같습니다. – ujell