2017-09-09 7 views
1

Ich versuche, Daten von einem View-Controller zum anderen mit dieser Methode übergeben:Warum bekomme ich 'Instance-Mitglied' ___ 'kann nicht für den Typ' ___ 'in PrepareForSegue verwendet werden?

func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject!) { 

     if segue.identifier == "toSecondViewController" { 
      let secondViewController = segue.destination as! SecondViewController 

      SecondViewController.username = "Austin" 
     } 

    } 

, erhalte ich die Fehler

Mitglied auf Typ

Instanz jedoch ‚username‘ nicht verwendet werden können 'SecondViewController'

die Variable username wurde in SecondViewController definiert und das segue ist in der Tat toSecondViewController benannt. Was könnte diesen Fehler verursachen?

Antwort

1

Das passiert mir die ganze Zeit.

if segue.identifier == "toSecondViewController" { 
      let secondViewController = segue.destination as! SecondViewController 

      SecondViewController.username = "Austin" 
     } 

Beachten Sie, wie SecondViewController.username = "Austin" eine Kapital S hat .. sollte es Kleinbuchstaben eingegeben werden.

Sie deklarieren eine Variable let secondViewController as! SecondViewController aber dann versuchen Sie .userName auf SecondViewController, Hauptstadt S

Sie setzen sollten .userName auf die Variable secondViewController einzustellen. Kleinbuchstaben s, was du beabsichtigt hast.

+0

Martin .. der Übergang geschieht jetzt ohne Fehler, aber es scheint nicht so, als ob die Daten an SecondViewController übergeben werden. Gibt es einen einfachen Weg, um es zu testen? –

+0

Zeigen Sie mir in SecondViewController, wie Sie den Benutzernamen deklarieren. var username = Was haben Sie hier angegeben? Sie haben sich vielleicht anmelden lassen, was bedeutet, dass Sie es nicht ändern können. –

+0

In SecondViewController habe ich var username = "" –

Verwandte Themen