2012-08-07 43 views
1

我是iOS开发新手。我有我的故事板这个视图控制器(包括一个的UIDatePicker和酒吧按钮):iOS中UIDatePicker的默认日期

enter image description here

我跟着Data Cell打电话给我的DatePicker。当在网页上的按钮用户点击PickerDate与导航栏上完成栏按钮弹出:

enter image description here

的问题是它只显示当前日期为default

enter image description here

你知道我怎么能解决这个问题:当我将它从性能没有什么变化? (由setting up the properties或编程)。

+0

程序添加它,那里你可以进行相应的设置.... – IronManGill 2012-08-07 09:43:05

回答

9

我做到了以编程方式是这样的:

NSCalendar *calendar = [[[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar] autorelease]; 
NSDateComponents *components = [[[NSDateComponents alloc] init] autorelease]; 
[components setYear:1980]; 
[components setMonth:1]; 
[components setDay:1]; 
NSDate *defualtDate = [calendar dateFromComponents:components]; 
pickerView.date = defualtDate; 

但仍然不知道为什么它不setting up the properties工作。任何帮助?

+0

您是否已将'IBOutlate'设置为pickerView? :) – 2012-08-07 10:24:22

+0

是的,我正好完成了你的编码。我的问题是我们必须始终以编程方式设置它吗?在属性页面上查看我的图像。我们可以从那里修复它吗? – Ali 2012-08-07 11:04:31

+0

其实它应该从那里工作,但没有像我们预期的那样发生:(所以必须以编程方式始终:)。 – 2012-08-07 11:09:03

4

斯威夫特

let calendar: NSCalendar = NSCalendar(calendarIdentifier: NSGregorianCalendar)! 
    // let calendar: NSCalendar = NSCalendar.currentCalendar() 
    calendar.timeZone = NSTimeZone(name: "UTC")! 
    let components: NSDateComponents = NSDateComponents() 
    components.year = 1980 
    components.month = 1 
    components.day = 1 
    let defaultDate: NSDate = calendar.dateFromComponents(components)! 
    self.dateOfBirthUIDatePicker.date = defaultDate 
0

伟大的答案以上 - 这里的Swift3(02月17日)版本:

let calendar: NSCalendar = NSCalendar(calendarIdentifier: .gregorian)! 
     calendar.timeZone = NSTimeZone(name: "UTC")! as TimeZone 
     let components: NSDateComponents = NSDateComponents() 
     components.year = 1980 
     components.month = 1 
     components.day = 1 
     let defaultDate: NSDate = calendar.date(from: components as DateComponents)! as NSDate 
     self.datePicker.date = defaultDate as Date