laden der daten aus anderem view

  • laden der daten aus anderem view

    hallo liebe gemeinde,

    funktioniert es das man sich daten in dem geöffneten view aus einem anderen view holt oder müssen die immer übergeben werden? beispiel in view 1 lass ich etwas rechnen und bekomme mehrere ergebnisse, in view 2 kommen nun die querschnitsmaße hinzu und dann soll in view 3 alles gemeinsam verarbeitet werden.

    danke für hilfreiche tips schonmal.

    lg matze
  • wenn du ne referenz drauf hast, und dir das bereit gestellt wird (property, methode) dann kannst du es dir auch "holen"

    wenn das anscheinend eh nacheinander aufgerufen wird, wo ist das Problem das mitzugeben?

    ich hoffe du lässt es nicht wirklich in der View berechnen, das hat da nichts zu suchen, MVC
    Ich weiß nicht immer wovon ich rede aber ich weiß das ich Recht habe. :saint:
  • Aktualisierungen in Views / ViewControllern triggere ich gerne über NSNotifications. Dann weiß der Controller, dass sich etwas geändert hat und holt sich die neuen Daten aus der Modellschicht ... und die braucht sich nicht darum scheren, wer alles abonniert hat.

    MVC ist auf jeden Fall eine Betrachtung wert.

    Mattes
    Diese Seite bleibt aus technischen Gründen unbedruckt.
  • hab mal angefangen mit meiner berechnung der daten und schon komm ich am ersten prob an (noch nicht mal die rechenaufgabe eingebaut).
    was ist bitte an dem 'row' falsch in der IBAction func? ich weiß ich stehe noch sehr am anfang aber deshalb such ich ja etwas hilfe.
    mußte leider den code kürzen, alles was mit dem pickerview zu tun hatte ist rausgenommen.

    Quellcode

    1. import UIKit
    2. class ViewController: UIViewController,UIPickerViewDataSource,UIPickerViewDelegate{
    3. @IBOutlet weak var myPicker: UIPickerView!
    4. @IBOutlet weak var myLabel: UILabel!
    5. @IBOutlet weak var grdmaß: UITextField!
    6. @IBOutlet weak var frsthö: UITextField!
    7. @IBOutlet weak var trfhö: UITextField!
    8. @IBOutlet weak var vrdalä: UITextField!
    9. @IBOutlet weak var dchng: UITextField!
    10. @IBOutlet weak var okfpf: UITextField!
    11. @IBOutlet weak var okfipf: UITextField!
    12. @IBAction func PickerLoad(sender: UITapGestureRecognizer) {
    13. myPicker.hidden = false
    14. }
    15. let formatter = NSNumberFormatter()
    16. var pickerDataSource = ["Traufehö-Vordach-Neigung","Traufehö-Vordach-OK Fußpf","Traufhö-Neigung-OK Fußpf","Vordach-Neigung-OK Fußpf","Grdmaß-Firsthö-Traufhö-Vordach","Grdmaß-Firsthö-Traufhö-Neigung","Grdmaß-Firsthö-Traufhö-OK Fußpf","Grdmaß-Traufhö-Neigung-OK FiPf","Grdmaß-Firsthö-Vordach-Neigung","Grdmaß-Firsthö-Vordach-OK Fußpf", "Grdmaß-Vordach-Neigung-OK FiPf","Grdmaß-Vordach-OK Fußpf-OK FiPf"]
    17. override func viewDidLoad() {
    18. super.viewDidLoad()
    19. self.myPicker.delegate = self
    20. self.myPicker.dataSource = self
    21. grdmaß.delegate = self
    22. frsthö.delegate = self
    23. trfhö.delegate = self
    24. vrdalä.delegate = self
    25. dchng.delegate = self
    26. okfpf.delegate = self
    27. okfipf.delegate = self
    28. formatter.maximumFractionDigits = 2
    29. let tapGR = UITapGestureRecognizer(target: self, action: "handleTap:")
    30. tapGR.delegate = self
    31. view.addGestureRecognizer(tapGR)
    32. }
    Alles anzeigen

    Quellcode

    1. func pickerView(pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int) {
    2. myLabel.text = pickerDataSource[row]
    3. if(row == 0)
    4. {
    5. grdmaß.enabled = true
    6. grdmaß.backgroundColor = UIColor.whiteColor();
    7. frsthö.enabled = true
    8. frsthö.backgroundColor = UIColor.whiteColor();
    9. trfhö.enabled = true
    10. trfhö.backgroundColor = UIColor.whiteColor();
    11. vrdalä.enabled = true
    12. vrdalä.backgroundColor = UIColor.whiteColor();
    13. dchng.enabled = true
    14. dchng.backgroundColor = UIColor.whiteColor();
    15. okfpf.enabled = false
    16. okfpf.backgroundColor = UIColor.groupTableViewBackgroundColor();
    17. okfipf.enabled = false
    18. okfipf.backgroundColor = UIColor.groupTableViewBackgroundColor();
    19. }
    20. else if(row == 1)
    21. {
    22. grdmaß.enabled = true
    23. grdmaß.backgroundColor = UIColor.whiteColor();
    24. frsthö.enabled = true
    25. frsthö.backgroundColor = UIColor.whiteColor();
    26. trfhö.enabled = true
    27. trfhö.backgroundColor = UIColor.whiteColor();
    28. vrdalä.enabled = true
    29. vrdalä.backgroundColor = UIColor.whiteColor();
    30. dchng.enabled = false
    31. dchng.backgroundColor = UIColor.groupTableViewBackgroundColor();
    32. okfpf.enabled = true
    33. okfpf.backgroundColor = UIColor.whiteColor();
    34. okfipf.enabled = false
    35. okfipf.backgroundColor = UIColor.groupTableViewBackgroundColor();
    36. }
    37. }
    38. .
    39. .
    40. .
    41. .
    42. func str2float(str:String) -> Float {
    43. let format = NSNumberFormatter()
    44. format.numberStyle = NSNumberFormatterStyle.DecimalStyle
    45. let num = format.numberFromString(str)?.floatValue
    46. return num!
    47. }
    48. @IBAction func rechneUm(sender: AnyObject) {
    49. if (row == 0) {
    50. if trfhö.text!.isEmpty && vrdalä.text!.isEmpty && dchng.text!.isEmpty && grdmaß.text!.isEmpty && frsthö.text!.isEmpty {
    51. self.trfhö.text = "0"; self.vrdalä.text = "0"; self.dchng.text = "0"; self.grdmaß.text = "o"; self.frsthö.text! = "0"
    52. }
    53. let num1 = str2float(grdmaß.text!)
    54. let num2 = str2float(frsthö.text!)
    55. let num3 = str2float(trfhö.text!)
    56. let num4 = str2float(vrdalä.text!)
    57. let num5 = str2float(dchng.text!)
    58. let fpf = num1 * 1.8 + 32
    59. okfpf.text = "\(fpf)"
    60. }
    61. }
    62. }
    Alles anzeigen
  • ein kleines licht geht auf, ich muß dem row == 0 eine variable zuordnen um diese später wieder abrufen zu können aber wie?
    hm und mit dem button weiß ich nicht gar nicht!
    Ich würd ja gern den vollständigen code posten aber es sind nur 10000 zeichen möglich.
    Ich versuch es mal als dateianhang!
    Dateien
    • Profil.txt

      (16,78 kB, 196 mal heruntergeladen, zuletzt: )

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von matze511 ()

  • matze511 schrieb:

    in etwa so: var row0:UI?
    Wie man in Swift Variablen deklariert und ihnen Werte zuweist ist hier beschrieben.
    Wie man Properties (Instanzvariablen) in Swift verwendet ist hier beschrieben.
    Wie man Funktionen/Methoden in Swift mit und ohne Parameter deklariert und benutzt ist hier beschrieben.

    Wenn du diese drei Grundlagen verstanden hast, dann kannst du dein Problem, dir die ausgewählte Zeile in einer Instanzvariablen zu merken, lösen.