Data Picker View Weiterleitung

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Data Picker View Weiterleitung

    Hallo Ihr Lieben,
    Ich habe mal eine Frage zum Data Picker. leider finde ich bei google nur was zum Date Picker.
    und zwar habe ich eine Data Picker mit 5 Orten die ausgewählt werden dürfen, und wenn ein Ort von dieser liest ausgewählt ist sollte es zu einem WebView geleitet werden

    Beispiel

    Picker : "München" ausgewählt weiterleitung zum View München
    Picker : "Berlin" --> View Berlin usw.

    Wie kann ich das am besten bewerkstelligen? in den Views sind webViews mit einer internet adresse hinterlegt, für bestimmte Städte.

    Ich hoffe es kann mir jemand helfen,
  • Quellcode

    1. import UIKit
    2. class ViewController: UIViewController, UIPickerViewDataSource, UIPickerViewDelegate {
    3. override func viewDidLoad() {
    4. super.viewDidLoad()
    5. // Do any additional setup after loading the view, typically from a nib.
    6. picker.dataSource = self
    7. picker.delegate = self
    8. }
    9. override func didReceiveMemoryWarning() {
    10. super.didReceiveMemoryWarning()
    11. // Dispose of any resources that can be recreated.
    12. }
    13. @IBOutlet weak var picker: UIPickerView!
    14. let data = ["Berlin", "Frankfurt", "Düsseldorf", "München", "Wien"]
    15. func numberOfComponents(in pickerView: UIPickerView) -> Int {
    16. return 1
    17. }
    18. func pickerView(_ pickerView: UIPickerView, numberOfRowsInComponent component: Int) -> Int {
    19. return data.count
    20. }
    21. func pickerView(_ pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String? {
    22. return data[row]
    23. }
    24. func pickerView(_ pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int) {
    25. if(row == 0)
    26. {
    27. self.view.backgroundColor = UIColor.white;
    28. }
    29. else if(row == 1)
    30. {
    31. self.view.backgroundColor = UIColor.red;
    32. }
    33. else if(row == 2)
    34. {
    35. self.view.backgroundColor = UIColor.green;
    36. }
    37. else if(row == 3)
    38. {
    39. self.view.backgroundColor = UIColor.lightGray;
    40. }
    41. else
    42. {
    43. self.view.backgroundColor = UIColor.blue;
    44. }
    45. print("Ausgewaehlt: \(data[row])")
    46. }
    47. }
    Alles anzeigen
    Also ich habe es jetzt erst mal soweit das er auf den bestimmten Ort reagiert, der Ansatz ist richtig, jetzt sollte statt der Farbwechsel eine Weiterleitung zum nächsten View.
    Ich habe auch schon ein Segue erstellt mit identifire.


    ich habe jetzt das gefunden

    self.performSegue(withIdentifier: "segueView", sender: self)

    aber da stürzt er mit ab, der segue hat ein Identifire und das View eine klasse

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von Oli Gabler ()

  • Quellcode

    1. import UIKit
    2. class ViewController: UIViewController, UIPickerViewDataSource, UIPickerViewDelegate {
    3. override func viewDidLoad() {
    4. super.viewDidLoad()
    5. // Do any additional setup after loading the view, typically from a nib.
    6. picker.dataSource = self
    7. picker.delegate = self
    8. }
    9. override func didReceiveMemoryWarning() {
    10. super.didReceiveMemoryWarning()
    11. // Dispose of any resources that can be recreated.
    12. }
    13. @IBOutlet weak var picker: UIPickerView!
    14. let data = ["Berlin", "Frankfurt", "Düsseldorf", "München", "Wien"]
    15. func numberOfComponents(in pickerView: UIPickerView) -> Int {
    16. return 1
    17. }
    18. func pickerView(_ pickerView: UIPickerView, numberOfRowsInComponent component: Int) -> Int {
    19. return data.count
    20. }
    21. func pickerView(_ pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String? {
    22. return data[row]
    23. }
    24. func pickerView(_ pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int) {
    25. if(row == 0)
    26. {
    27. // Neu
    28. self.performSegue(withIdentifier: "segueView", sender: self)
    29. }
    30. else if(row == 1)
    31. {
    32. self.view.backgroundColor = UIColor.red;
    33. }
    34. else if(row == 2)
    35. {
    36. self.view.backgroundColor = UIColor.green;
    37. }
    38. else if(row == 3)
    39. {
    40. self.view.backgroundColor = UIColor.lightGray;
    41. }
    42. else
    43. {
    44. self.view.backgroundColor = UIColor.blue;
    45. }
    46. //print("Ausgewaehlt: \(data[row])")
    47. }
    48. }
    Alles anzeigen
    Reihe 39 ist glaube ich das Problem


    Fehler in der Konsole ist:

    2016-10-27 12:54:13.176 PickerView[31005:1773454] *** Terminating app due to uncaught exception 'NSGenericException', reason: 'Could not find a navigation controller for segue 'segueView'. Push segues can only be used when the source controller is managed by an instance of UINavigationController.'
    *** First throw call stack:
    (
    0 CoreFoundation 0x000000010d48b34b __exceptionPreprocess + 171
    1 libobjc.A.dylib 0x000000010a7bb21e objc_exception_throw + 48
    2 UIKit 0x000000010b50bf71 __copy_helper_block_ + 0
    3 UIKit 0x000000010b464fbd -[UIStoryboardSegueTemplate _performWithDestinationViewController:sender:] + 447
    4 UIKit 0x000000010b464dcd -[UIStoryboardSegueTemplate _perform:] + 82
    5 UIKit 0x000000010ae2eabf -[UIViewController performSegueWithIdentifier:sender:] + 99
    6 PickerView 0x000000010a1da609 _TFC10PickerView14ViewController10pickerViewfTCSo12UIPickerView12didSelectRowSi11inComponentSi_T_ + 153
    7 PickerView 0x000000010a1dabfa _TToFC10PickerView14ViewController10pickerViewfTCSo12UIPickerView12didSelectRowSi11inComponentSi_T_ + 74
    8 UIKit 0x000000010ac6da4d -[UIPickerView _sendSelectionChangedForComponent:notify:] + 104
    9 UIKit 0x000000010ac6dc9e -[UIPickerView _sendSelectionChangedFromTable:notify:] + 370
    10 UIKit 0x000000010b4401bd -[UIPickerTableView _scrollingFinished] + 187
    11 UIKit 0x000000010b4403ad -[UIPickerTableView scrollViewDidEndDecelerating:] + 30
    12 UIKit 0x000000010ad7a42d -[UIScrollView(UIScrollViewInternal) _scrollViewDidEndDeceleratingForDelegate] + 91
    13 UIKit 0x000000010ad76f6e -[UIScrollView(UIScrollViewInternal) _stopScrollDecelerationNotify:] + 316
    14 UIKit 0x000000010ad771c5 -[UIScrollView(UIScrollViewInternal) _stopScrollingNotify:pin:tramplingDragFlags:] + 505
    15 UIKit 0x000000010ad6f10f -[UIScrollView _smoothScrollWithUpdateTime:] + 3304
    16 QuartzCore 0x000000011014bbc5 _ZN2CA7Display15DisplayLinkItem8dispatchEy + 57
    17 QuartzCore 0x000000011014ba85 _ZN2CA7Display11DisplayLink14dispatch_itemsEyyy + 449
    18 CoreFoundation 0x000000010d41d964 __CFRUNLOOP_IS_CALLING_OUT_TO_A_TIMER_CALLBACK_FUNCTION__ + 20
    19 CoreFoundation 0x000000010d41d5f3 __CFRunLoopDoTimer + 1075
    20 CoreFoundation 0x000000010d41d17a __CFRunLoopDoTimers + 250
    21 CoreFoundation 0x000000010d414f01 __CFRunLoopRun + 2065
    22 CoreFoundation 0x000000010d414494 CFRunLoopRunSpecific + 420
    23 GraphicsServices 0x000000010f340a6f GSEventRunModal + 161
    24 UIKit 0x000000010ac8a964 UIApplicationMain + 159
    25 PickerView 0x000000010a1dc69f main + 111
    26 libdyld.dylib 0x000000010e3b868d start + 1
    )
    libc++abi.dylib: terminating with uncaught exception of type NSException
    (lldb)

    Dateien
  • Ok neuer fehler jetzt, tut mir leid das ich dich aufhalte, aber ich danke dir schon mal 1000 mal
    Dateien

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von Oli Gabler ()

  • Habe jetzt neu Verbunden, Neuer Fehler:

    2016-10-27 15:42:01.901672 PickerView[3901:940402] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'Receiver (<PickerView.ViewController: 0x100b09ff0>) has no segue with identifier 'segueView''
    *** First throw call stack:
    (0x1816721c0 0x1800ac55c 0x18782efa0 0x10004b510 0x10004baa4 0x187741154 0x18774138c 0x187c6e424 0x187c6e5fc 0x1877df6ac 0x187674db0 0x1876748ec 0x18487e1bc 0x18487e068 0x1818df138 0x18160856c 0x181620934 0x1816200e8 0x18161dbcc 0x18154c048 0x182fd2198 0x1875372fc 0x187532034 0x10004d6d8 0x1805305b8)
    libc++abi.dylib: terminating with uncaught exception of type NSException
    (lldb)

    Ich glaube ich bin einfach zu doof. oder ich habe ein Denkfehler im Kopf
    Dateien
  • Ja darüber habe ich auch nachgedacht, es währe einfacher, da geben ich dir recht, aber ein Kollege wollte es so. Wenn es nicht machbar ist werde ich es auch so Lösen wie du gesagt hast

    es ist halt so das wir 6 Städte haben, und diese Städte einen eigenen Internetshop haben,
    dadurch sollte sich ein extra View mit WebView für die Stadt öffnen.
    Evt ne andere Idee um das umzusetzen?
    Aber an der Table habe ich auch schon gedacht
  • Es ist problemlos machbar, aber es ist eben "falsch"… :-p

    Ich weiß ja nicht wie es wirklich ist, aber mal so dahin fantasiert:

    Meine Aufgabe als Entwickler/Programmierer ist es nicht nur den Code für den Kunden umzusetzen um fertig zu werden.
    Viel mehr gehört es auch zu meinen Aufgaben ihn vor "falschen Entscheidungen" zu bewahren. Weil er es vermutlich nicht besser weiß.
    Die Welt geht davon nicht unter, aber es gibt bessere Wege. Und diese zeige ich ihm auf.

    Viele Grüße