Vai al contenuto

[Risolto] Datepicker Con Label


Messaggi raccomandati

Ciao a tutti,

sto provando a realizzare un app usando il DatePicker

in pratica tramite il DatePicker scelgo una data, che appare in una Label1, vengono aggiunti tot anni e mesi, e nella Label 2 dovrebbe apparire il totale

Il problema è che non riesco a far apparire il totale

 

qualche suggerimento?

dove sbaglio?

Questo è il codice usato:

 

class ViewController: UIViewController {

    

    @IBOutlet weak var dateLabel: UILabel!

    

    @IBOutlet weak var resultLabel: UILabel!

        

    @IBOutlet weak var datePicker: UIDatePicker!

    

    override func viewDidLoad() {

        super.viewDidLoad()

        // Do any additional setup after loading the view, typically from a nib.

        

        datePicker.addTarget(self, action: #selector(ViewController.datePickerChanged(_ :)), forControlEvents: UIControlEvents.ValueChanged)

       

        

    }

 

    override func didReceiveMemoryWarning() {

        super.didReceiveMemoryWarning()

        // Dispose of any resources that can be recreated.

    }

    

    func datePickerChanged(datePicker:UIDatePicker) {

        

        let dateFormatter = NSDateFormatter()

        

        dateFormatter.dateStyle = NSDateFormatterStyle.LongStyle

        let strDate = dateFormatter.stringFromDate(datePicker.date)

        dateLabel.text = strDate

        

                }

    

    func resultLabel(sender: AnyObject){

        let dateFormatter = NSDateFormatter()

        

        dateFormatter.dateStyle = NSDateFormatterStyle.LongStyle

        let stoDate = dateFormatter.stringFromDate(datePicker.date)

        resultLabel.text = stoDate

        

        

        let yearsToAdd = 2

        let monthToAdd = 5

        

        var calculatedDate = NSCalendar.currentCalendar().dateByAddingUnit(NSCalendarUnit.Year, value: yearsToAdd, toDate: datePicker.date, options: NSCalendarOptions.init(rawValue: 0))

        calculatedDate = NSCalendar.currentCalendar().dateByAddingUnit(NSCalendarUnit.Month, value: monthToAdd, toDate: calculatedDate!, options: NSCalendarOptions.init(rawValue: 0))

        

        resultLabel.text = "\(dateLabel.text)" + "\(datePicker.date)"

    

    }

    }

 
Link al commento
Condividi su altri siti

ho modificato  il codice sopra in questo modo:

in questo modo nella resultLabel riesco vedere la stessa data impostata nella textField tramite il DatePicker, ma non riesco a sommare:anni,mesi,giorni

(la faccina che si vede in realtà sono due punti parentesi chiusa)

Grazie

 

 

 @IBOutlet weak var dateText: UITextField!

    

    @IBOutlet weak var datePick: UIDatePicker!

    

    @IBOutlet weak var resultLabel: UILabel!

    

    

    

    override func viewDidLoad() {

        super.viewDidLoad()

        // Do any additional setup after loading the view, typically from a nib.

        

       

        

        datePick.addTarget(self, action: #selector(ViewController.datePickerChanged(_ :)), forControlEvents: UIControlEvents.ValueChanged)

        

    }

 

    override func didReceiveMemoryWarning() {

        super.didReceiveMemoryWarning()

        // Dispose of any resources that can be recreated.

    }

    func datePickerChanged(datePicker:UIDatePicker) {

        

        let dateFormatter = NSDateFormatter()

        dateFormatter.locale = NSLocale.currentLocale()

        dateFormatter.locale = NSLocale(localeIdentifier: "it_IT")

        

        dateFormatter.dateStyle = NSDateFormatterStyle.LongStyle

        let strDate = dateFormatter.stringFromDate(datePick.date)

        

        

        let currentDate = NSDate()

        let yearsToAdd = 10

        let monthsToAdd = 2

        let daysToAdd = 5

        

        // Method #1

        

        var calculatedDate = NSCalendar.currentCalendar().dateByAddingUnit(NSCalendarUnit.Year, value: yearsToAdd, toDate: currentDate, options: NSCalendarOptions.init(rawValue: 0))

        

         calculatedDate = NSCalendar.currentCalendar().dateByAddingUnit(NSCalendarUnit.Month, value: monthsToAdd, toDate: currentDate, options: NSCalendarOptions.init(rawValue: 0))

        

        calculatedDate = NSCalendar.currentCalendar().dateByAddingUnit(NSCalendarUnit.Day, value: daysToAdd, toDate: calculatedDate!, options: NSCalendarOptions.init(rawValue: 0))

        

        dateText.text = strDate

        resultLabel.text = strDate

        

    }

}

Link al commento
Condividi su altri siti

Allora sono riuscito a sistemare parzialmente la cosa in questo modo:

(ho cambiate il textField con una Label ma funziona lo stesso)

 

  func datePickerChanged(datePicker:UIDatePicker) {

        

        let currentDate = NSDate()

        

        let dateFormatter = NSDateFormatter()

        

        dateFormatter.locale = NSLocale.currentLocale()

        dateFormatter.locale = NSLocale(localeIdentifier: "it_IT")

        

        dateFormatter.dateStyle = NSDateFormatterStyle.LongStyle

        let strDate = dateFormatter.stringFromDate(datePick.date)

        dateLabel.text = strDate

        

        

        

        

        let yearsToAdd = 10

        let monthsToAdd = 2

        

        

    

        

        var calculatedDate = NSCalendar.currentCalendar().dateByAddingUnit(NSCalendarUnit.Year, value: yearsToAdd, toDate: currentDate, options: NSCalendarOptions.init(rawValue: 0))

        

        calculatedDate = NSCalendar.currentCalendar().dateByAddingUnit(NSCalendarUnit.Month, value: monthsToAdd, toDate: currentDate, options: NSCalendarOptions.init(rawValue: 0))

        

        

        let resultDate = dateFormatter.stringFromDate(calculatedDate!)

        dateFormatter.dateStyle = NSDateFormatterStyle.LongStyle

        resultLabel.text = resultDate

 

 

        

    }

}

 

 

 

ora pero se inserisco una data cambia solo il giorno, mentre l'anno rimane sempre sul 2016,e se provo a impostare un'altra data cambia solo la data che imposto e non l'altra

Dove sbaglio?

Qualcuno che mi aiuta?

Link al commento
Condividi su altri siti

Ho cambiato il metodo var calculatedDate  con un altro e sta funzionando 

ma avrei un altro quesito: Vorrei inserire date diverse in 2 textField, diversi usando un solo DatePicker, ho gia provato ad aggiungere 2 TextField ma in entrambi mi mette la stessa data

Help me!!

Link al commento
Condividi su altri siti

Archiviato

Questa discussione è archiviata e chiusa a future risposte.

×
×
  • Crea Nuovo...