Ios 使用步进器更改日期-Swift

Ios 使用步进器更改日期-Swift,ios,swift,Ios,Swift,我试图找出一种方法,允许用户更改以标签表示的当前日期 更改/操作按钮是一个步进器 标签默认为当前日期,当他们单击步进器时,他们应该能够将日期更改为明天、第二天等…当他们单击步进器上的+时。然后单击步进器的相反位置 class DateTestViewController: UIViewController { @IBOutlet weak var stepperOutlet: UIStepper! @IBOutlet weak var dateLabel: UILabel! override

我试图找出一种方法,允许用户更改以标签表示的当前日期

更改/操作按钮是一个步进器

标签默认为当前日期,当他们单击步进器时,他们应该能够将日期更改为明天、第二天等…当他们单击步进器上的+时。然后单击步进器的相反位置

class DateTestViewController: UIViewController {

@IBOutlet weak var stepperOutlet: UIStepper!
@IBOutlet weak var dateLabel: UILabel!

override func viewDidLoad() {
    super.viewDidLoad()

    let now = NSDate()
    var daysToAdd: Double = 1
    var newDate = now.dateByAddingTimeInterval(60*60*24*daysToAdd)
    dateLabel.text = "\(newDate)"
}

@IBAction func stepperAction(sender: AnyObject) {
    var unitsValue = 
    dateLabel.text = "\(unitsValue)"

}

}
有人能告诉我解决这个问题的正确方向吗

谢谢,
Addison

更新:Xcode 7.3•Swift 2.2

您可以使用NSCalendar方法dateByAddingUnit从您的日期中添加或减去UIStepper中的值,如下所示:

import UIKit

class ViewController: UIViewController {
    @IBOutlet weak var strDate: UILabel!
    var selectedDate:NSDate!
    override func viewDidLoad() {
        super.viewDidLoad()
        selectedDate = NSDate()   // sets the initial date
        strDate.text = selectedDate.formatted
    }
    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
    }
    @IBAction func stepAction(sender: UIStepper) {
        selectedDate = NSCalendar(calendarIdentifier: NSCalendarIdentifierGregorian)!.dateByAddingUnit(.Day, value: Int(sender.value), toDate: NSDate(), options: [])!
        strDate.text =  selectedDate.formatted
    }
}
extension NSDate {
    var formatted: String {
        let df = NSDateFormatter()
        df.dateFormat = "MMMM dd, yyyy - EEEE"
        df.locale = NSLocale(localeIdentifier: "en_US_POSIX")
        return df.stringFromDate(self)
    }
}

什么“问题”?您没有做任何关于更改标签的事情。而且您没有保留进入标签的日期,因此没有任何更改。此外,步进机不是一个很好的接口选择在这里。。。步进器就是要有一个值。但是你没有价值。你最好有自己的+和-按钮并对它们做出响应。好的,谢谢你的回复。我将研究为+和-。。。然后看看我是否能让它工作。很好,所以维护另一个
var
属性,它是标签的当前日期值,作为日期(NSDate)。因此,当点击+按钮时,执行日期算术(使用NSDateComponents)以将该日期增加一天,然后将其转换为字符串并将其放入标签中,就像您已经做的那样。按钮也是如此。谢谢你,莱昂纳多!添加到日期时,看起来工作正常。但是,如果您尝试转到以前的日期,则当前日期不起作用。示例:它不会在4月14日之前的任何日期生效。您可以将UIStepper最小值设置为-50(天)或任何您想要的值。为UIStepper创建了出口,然后添加:newStepper.minimumValue=-10谢谢!