2017-03-28 3 views
1

Ich habe eine loginView und kann mit dem SWRevealController zu einem anderen Slide-Out-Menü wechseln.Swift: Wie sende ich Daten von loginView zu anderen Ansichten?

Das Storyboard sieht wie folgt aus: http://imgur.com/a/Qx3Tj

ich ein Token mit alamofire im loginViewController und wollen es dem mainPageView

mit prepareForSegue senden
override func prepare(for segue: UIStoryboardSegue, sender: Any?) { 
    if (segue.identifier == "logInSegue") { 
     PersonResource.getToken(username: usernameTF.text!, password: passwordTF.text!){ token in 
      let mainPageVC = segue.destination as! MainPageViewController     
      mainPageVC.token = token 
     } 
    } 
} 

Wenn ich auf Login klicken ich diesen Fehler :

unrecognized selector sent to instance

Was ist der richtige Weg, dies zu tun?

func login(){ 

     PersonResource.getToken(username: usernameTF.text!, password: passwordTF.text!){ token in 
         if let t = token as? String{ 
          performSegue(with:"logInSegue", sender:token) 
         } 
       } 
} 

und nach dem Token von API abrufen werden Sie Ihre segue mit „logInSegue“

und Sie müssen ausführen, um Ihre Funktion vorbereiten ändern:

Antwort

0

Können Sie Ihren Login-Code, um diese Änderung:

override func prepare(for segue: UIStoryboardSegue, sender: Any?) { 
    if (segue.identifier == "logInSegue") { 
     if let token = sender as? String{ 
        let mainPageVC = segue.destination as! MainPageViewController     
      mainPageVC.token = token 
       } 
    } 

Im Grunde müssen Sie Ihr Segment nach dem Abrufen von Token durchführen.

+0

gibt es immer noch ein Problem das Ziel des Segments ein SWRevealController, so kann ich nicht nur ein segue.destination als MainPageViewController erstellen –

+0

Haben Sie die Verknüpfung von Schaltfläche? Wenn Sie das tun, können Sie es entfernen und einen Übergang von der Ansicht zur Ansicht erstellen. –

Verwandte Themen