2016-09-20 3 views
0

Ich habe Schwierigkeiten gehabt, Daten zwischen Ansichtscontrollern zu übertragen, die Segmente verwenden. Ich habe viele Youtube-Videotutorials angeschaut und in Foren herumgesucht, aber ich kann nicht herausfinden, warum es nicht funktioniert. Ich bekomme keine Fehlermeldungen, aber wenn ich auf den 'Button' klicke, stürzt der Simulator ab. Ich würde etwas Hilfe lieben! Vielen Dank! HierDaten können nicht zwischen Ansichtscontrollern übertragen werden, die Segmente verwenden (Xcode 7) (Swift)

ist der Code:

ViewController1:

import UIKit 

class ViewController: UIViewController { 

    @IBOutlet var textField: UITextField! 

    override func viewDidLoad() { 
     super.viewDidLoad() 
     // Do any additional setup after loading the view, typically from a nib. 
    } 

    override func didReceiveMemoryWarning() { 
     super.didReceiveMemoryWarning() 
     // Dispose of any resources that can be recreated. 
    } 

    override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) { 
     let destViewController : ViewController2 = segue.destinationViewController as! ViewController2 

     destViewController.labelText = textField.text! 

    } 

} 

ViewController2:

import Foundation 
import UIKit 

class ViewController2 : UIViewController { 

    @IBOutlet var Label: UILabel! 

    var labelText : String = "" 

    override func viewDidLoad() { 

     Label.text = labelText 

    } 

} 

Storyboard Bild:

storyboard image

+0

an welche Leitung es abstürzt? – Santosh

+0

@Alife Sie vermisste das segue.identifier = "einige Kennung" –

+0

auf Ihrem ViewController2 versuchen, diese Zeile zu ändern var labelText: String = "" zu diesem var labelText: String! Um zu verhindern, dass der Simulator abstürzt, versuchen Sie "destViewController.labelText = textField.text!" zu diesem "destViewController.labelText = textField.text ??" - Textfeld ist leer, deshalb passiert nichts "" –

Antwort

0

Wie in dem Kommentar erwähnt, war das Problem, dass Sie ein Push-Segment auf einem UIViewController verwendeten.

Bitte beachten Sie, dass Push-und Modal segues sind veraltet ... Bitte nehmen Sie sich einen Blick auf diesen Beitrag Eintrag und lassen Sie mich wissen, wenn Sie irgendwelche Zweifel haben

What's the difference between all the Selection Segues?

0

Stellen Sie sicher, einen Text in Ihrem Label textField vor Antippen der Taste einzugeben, da Sie das Label seine Text zur nächsten Szene Kraft unwrap sind vorbei mit.

+0

Ich habe es versucht aber trotzdem stürzt der Simulator ab. Danke für den Vorschlag! :) – Alfie

0

Ich habe ein Beispielprojekt mit Ihrem gleichen Code erstellt und keinen Fehler erhalten. Es ist nichts falsch mit Ihrem Code.

Versuchen Sie Folgendes: Gehen Sie zu Ihrem Storyboard und überprüfen Sie den Outlets Inspector für jeden View Controller und stellen Sie sicher, dass Sie keine Steckdose haben.

+0

Ich habe überprüft und habe nichts gefunden. Ich bekomme zwar einen SIGABRT-Fehler. – Alfie

+0

Das ist der Fehler, den Sie normalerweise bei nicht angeschlossenen Steckdosen bekommen. Alle Ihre Verkaufsstellen sollten einen ausgefüllten Kreis haben. Sie sollten 2 Ausgänge auf ViewController (TextField und View) und 2 Ausgänge auf ViewController 2 (Label und View) haben. – nighttalker

+0

Sie sind die Verkaufsstellen, die ich habe und es gibt keine anderen – Alfie

Verwandte Themen