Ich habe eine andere Methode zum Verschwinden der UIDatePicker verwendet.
Erstellen Sie eine XIB (Nib) -Datei und fügen Sie ihr einen UIDatePicker hinzu, dann die Größe der Ansicht so anpassen, dass sie nur den UIDatePicker passt, erstellen Sie eine Eigenschaft (machen Sie es stark und nichtatomisch) in Ihrem ViewController (oder welcher Klasse Sie verwenden und synthetisieren Na sicher).
@property (nonatomic, strong) UIView *myDatePickerView;
@synthesize myDatePickerView;
dann eine loadDatePickerView Methode
- (void) loadDatePickerView
{
UINib *nib = [UINib nibWithNibName:kNIBname bundle:[NSBundle mainBundle]];
NSArray *views = [nib instantiateWithOwner:self options:nil];
self.myDatePickerView = [views firstObject];
[myDatePickerView setFrame:CGRectMake(0, 318, 320, 162)];
[self.view addSubview:myDatePickerView];
}
implementieren die UITextFieldDelegate, und in der textFieldDidBeginEditing Methode aufrufen, die loadDatePickerView Methode,
[self loadDatePickerView];
machen Funktion eine Eigenschaft erstellen erstellen Das ist eine UI Datepicker-Instanz
@property (nonatomic,strong)
UIDatePicker *myDatePicker;
(natürlich synthetisieren)
jetzt eine IBAction wie so erstellen:
-(IBAction)datePickerValueChanged:(UIDatePicker *)sender
{
myDatePicker = [[myDatePickerView subviews] lastObject];
//now you can do whatever you want with the DatePicker
}
nun die IBAction zum Picker in der XIB-Datei verbinden, auf diese Weise die XIB ist jetzt die UIDatePicker-Instanz, die Sie in der VC erstellt haben. Wenn Sie sie verschwinden lassen möchten, können Sie einen UITapGestureRecognizer (in ViewDidLoad) und die s hinzufügen Kurfürst wird ein weiterer IBAction sein, die myDatePickerView von seinem superview wie folgt entfernt:
- (void)viewDidLoad
{
[super viewDidLoad];
UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(dropPicker:)];
[self.view addGestureRecognizer:tap];
[self datePickerValueChanged:myDatePicker];
}
-(IBAction)dropPicker:(id)sender
{
[myDatePickerView removeFromSuperview];
}
Ich sehe, dass die Technik in Kontakt verwendet ist, sagen, wenn Sie einen Geburtstag hinzufügen. Ich muss meine Ansicht überarbeiten, da ich momentan eine Schaltfläche "Abbrechen" als das Element der rechten Leiste habe. Ich werde es versuchen. Danke für die Antwort! – johnnyspo
Sogar ich habe eine Speichern-Taste .. Sie können die Tasten wechseln .. –
Genau das, was ich getan habe !! Danke noch einmal. – johnnyspo