एक प्रतिनिधि का उपयोग करें!
हैडर:
@class DatePickerController;
@protocol DatePickerControllerDelegate
- (void) datePickerController:(DatePickerController *)controller didPickDate:(NSDate *)date;
@end
@interface DatePickerController : UIViewController {
UIDatePicker *datePicker;
NSObject <DatePickerControllerDelegate> *delegate;
}
@property (nonatomic, retain) UIDatePicker *datePicker;
@property (nonatomic, assign) NSObject <DatePickerControllerDelegate> *delegate;
@end
वर्ग:
@implementation DatePickerController
- (void) loadView {
self.view = [[[UIView alloc] init] autorelease];
self.datePicker = [[[UIDatePicker alloc] init] autorelease];
[self.view addSubview:self.datePicker];
UIButton *button = [UIButton buttonWithType:UIButtonTypeRoundedRect];
[button setTitle:@"Done" forState:UIControlStateNormal];
button.center = CGPointMake(160,240);
[button addTarget:self action:@selector(done) forControlEvents:(UIControlEventTouchUpInside)];
[self.view addSubview:button];
}
- (void) done {
[delegate datePickerController:self didPickDate:datePicker.date];
}
- (void) dealloc {
[datePicker release];
[super dealloc];
}
@end
loadView के सभी कि बकवास करता है, तो आपके पास अपनी पसंदीदा निब साथ बदला जा सकता। बस डेटपिकर को आईबीओलेट के रूप में घोषित करना सुनिश्चित करें। और आप वास्तव में इसका उपयोग करना चाहते हैं जब:
- (void) pickDate {
DatePickerController *screen = [[[DatePickerController alloc] init] autorelease];
screen.delegate = self;
[self presentModalViewController:screen animated:YES];
}
- (void) datePickerController:(DatePickerController *)controller didPickDate:(NSDate *)date {
[self doSomethingWithDate:date];
[controller dismissModalViewControllerAnimated:YES];
}
स्रोत
2009-10-26 21:39:45
ग्रेट उत्तर, एड! – typeoneerror
हाय एड, यहां एक नौसिखिया का थोड़ा सा, क्या आप एक कामकाजी डेमो की आपूर्ति कर सकते हैं? सोचो मैं कुछ याद कर रहा हूँ! – jimbo
ज़रूर ... ऊपर दिए गए कोड में क्या गलत है? क्या यह काम नहीं कर रहा है? यह होना चाहिए। –