Ich arbeite an einem Projekt, das Ihre Punkte berechnet, die Sie für die Schule brauchen, nur indem Sie Ihre Note in allen Fächern schreiben.UIPickerView Senden von Daten ohne Übergang
Ich benutze diese UIPickerView für den Benutzer, um dem Programm zu sagen, was es ist. Dann speichere ich es in einer Variablen. Aber ich kann diese Variable nicht ohne Segue an einen anderen Viewcontroller senden, und ich möchte die Verwendung von Segues vermeiden. Wie gehe ich vor?
Das ist mein Viewcontroller für eine subjekt:
(Ein Teil davon ist auf Schwedisch)
import UIKit
class Q_A_Religion: UIViewController, UIPickerViewDataSource, UIPickerViewDelegate {
@IBOutlet weak var label: UILabel!
@IBOutlet weak var label2: UILabel!
@IBOutlet weak var picker: UIPickerView!
let A: Double = 20.0
let B: Double = 17.5
let C: Double = 15.0
let D: Double = 12.5
let E: Double = 10.0
let F: Double = 0.0
var totaltmeritvärdeIReligion: Double = 0
//förvarar värdet av betyget som man skrivit in
let betygsAltenativ = [" ","A", "B", "C", "D", "E", "F", "-"]
public func numberOfComponents(in pickerView: UIPickerView) -> Int
{
return 1
}
public func pickerView(_ pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String?
{
return betygsAltenativ[row]
}
public func pickerView(_ pickerView: UIPickerView, numberOfRowsInComponent component: Int) -> Int
{
return betygsAltenativ.count
}
public func pickerView(_ pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int)
{
let BetygValt = betygsAltenativ[row]
label.text = betygsAltenativ[row]
switch (BetygValt)
{
case " ":
label2.text = (" ")
break
case "A":
label2.text = ("+ 20p")
totaltmeritvärdeIReligion = Double(A)
case "B":
label2.text = ("+ 17.5p")
totaltmeritvärdeIReligion = Double(B)
case "C":
label2.text = ("+ 15p")
totaltmeritvärdeIReligion = Double(C)
case "D":
label2.text = ("+ 12.5p")
totaltmeritvärdeIReligion = Double(D)
case "E":
label2.text = ("+ 10p")
totaltmeritvärdeIReligion = Double(E)
case "F":
label2.text = ("+ 0p")
totaltmeritvärdeIReligion = Double(F)
case "-":
label2.text = ("+ 0p")
default:
print("Inget betyg valt")
}//switch slutar
func prepare(for segue: UIStoryboardSegue, sender: Any?) {
let nextVC: Totaltmeritva_rde = segue.destination as! Totaltmeritva_rde
nextVC.Religionbetygetskickat = totaltmeritvärdeIReligion
}
}// func pickerView slutar
}//Slutet av allt
welches ist das beste in meinem fall? – theswed
Sie haben bereits einen prepareForSegue drin. Funktioniert es nicht? Sollte es nicht Override sein? Rufen Sie performSegue auf oder wird es vom Storyboard ausgeführt? –
Nun, ich versuchte, die Variable auszudrucken, die ich sendete, aber es würde funktionieren – theswed