O'Reilly logo

iOS 5 Programming Cookbook by Vandad Nahavandipoor

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

2.4. Picking the Date and Time with UIDatePicker

Problem

You want to allow the users of your app to select a date and time using an intuitive and ready-made user interface.

Solution

Use the UIDatePicker class.

Discussion

UIDatePicker is very similar to the UIPickerView class. The date picker is in fact a prepopulated picker view. A good example of the date picker control is in the Calendar app on the iPhone (Figure 2-14).

A date picker shown at the bottom of the screen

Figure 2-14. A date picker shown at the bottom of the screen

Let’s get started by first declaring a property of type UIDatePicker and then allocating and initializing this property and adding it to the view of our view controller:

#import <UIKit/UIKit.h>

@interface Picking_Date_and_Time_with_UIDatePickerViewController
           : UIViewController

@property (nonatomic, strong) UIDatePicker *myDatePicker;

@end

Let’s synthesize the property now:

#import "Picking_Date_and_Time_with_UIDatePickerViewController.h"

@implementation Picking_Date_and_Time_with_UIDatePickerViewController

@synthesize myDatePicker;

...

And now let’s instantiate the date picker, as planned:

- (void)viewDidLoad{
  [super viewDidLoad];
  self.view.backgroundColor = [UIColor whiteColor];
  self.myDatePicker = [[UIDatePicker alloc] init];
  self.myDatePicker.center = self.view.center;
  [self.view addSubview:self.myDatePicker];
}

Now let’s run the app and see how it looks, in Figure 2-15.

Figure 2-15. A simple date picker

You can see ...

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, interactive tutorials, and more.

Start Free Trial

No credit card required