Ios 日历文本标签将不会更新

Ios 日历文本标签将不会更新,ios,swift3,nsdate,nsdateformatter,Ios,Swift3,Nsdate,Nsdateformatter,在Swift 3中,如果使用Date和Calendar而不是NSDate和NSCalendar,则效果更佳 现在,如果要将sixtyDay标签设置为日期选择器日期的30天之后的日期,则需要将datePicker.date与date一起使用(通过添加:)而不是今天的日期 datePicker.addTarget(self, action: #selector(datePickerChanged(datePicker:)), for: UIControlEvents.valueChanged

在Swift 3中,如果使用
Date
Calendar
而不是
NSDate
NSCalendar
,则效果更佳

现在,如果要将
sixtyDay
标签设置为日期选择器日期的30天之后的日期,则需要将
datePicker.date
date一起使用(通过添加:)
而不是今天的日期

    datePicker.addTarget(self, action: #selector(datePickerChanged(datePicker:)), for: UIControlEvents.valueChanged)

    dateFormat()

} //this works
func dateFormat() {
    let today = NSDate()
    let dateFormatter = DateFormatter()
    let short = DateFormatter.Style.short
    dateFormatter.dateStyle = short
    dateFormatter.dateFormat = "MM-dd-YYYY"
    let startDate = dateFormatter.string(from: datePicker.date)
    dateLbl.text = startDate

    //this works but datePicker date when moved will not update
    let thirtyDays = NSCalendar.current.date(byAdding: Calendar.Component.day,value: 30, to: today as Date)
    let tomorrowSixty = dateFormatter.string(from: thirtyDays!)
    sixtyDay.text = tomorrowSixty

}
func datePickerChanged(datePicker:UIDatePicker){
    dateFormat()

}

}

注意:如果您使用
DateFormatter
设置
dateFormat
,则无需使用
DateFormatter
设置
dateStyle
,而且正确的年份格式化程序是
yyyy
而不是
yyyyyy
,dateLbl来自哪里?dateLbl是出口:IBOutlet弱var datePicker:我的提货员!IBL弱var dateLbl:UILabel!IBVAR第六十天:UILabel!如果移动了datepicker拨盘,则生成上的sixtyDay.text不会更新…日期在dateLbl.text上会更改,但在sixtyDay.text上不会更改,它保持不变day@rpbones531检查编辑后的答案更改行
let thirtyDays=Calendar.current.date(通过添加:.day,值:30,到:datePicker.date)
@rpbones531欢迎伴侣:)
func dateFormat() {

    let dateFormatter = DateFormatter()
    dateFormatter.dateFormat = "MM-dd-yyyy"
    let startDate = dateFormatter.string(from: datePicker.date)
    dateLbl.text = startDate

    //this works but datePicker date when moved will not update
    let thirtyDays = Calendar.current.date(byAdding: .day, value: 30, to: datePicker.date)
    let tomorrowSixty = dateFormatter.string(from: thirtyDays!)
    sixtyDay.text = tomorrowSixty
}

func datePickerChanged(datePicker:UIDatePicker){
    dateFormat()
}