2017-02-23 2 views
2

Ich bekomme den Wert von schoolAddress von einer Funktion. Ich überlasse den Wert von schoolAddress, nachdem die Ansicht verschwindet. m versuchen, den Wert der Schule Adresse von GeoDetailsVC zu EditChildPoofileVC passieren .. Danke im VorausWert an vorherigen ViewController übergeben, Delegate-Methode wird nicht aufgerufen

protocol DataEnteredDelegate : class { 
    func setLocations(info: String) 
} 

class GeoDetailsVC: UIViewController{ 
    weak var delegate: DataEnteredDelegate? = nil 
    var schoolAddress: String = "" 

    override func viewDidDisappear(animated: Bool) { 
     self.delegate?.setLocations(self.schoolAddress) 
     print(schoolAddress) 
    } 
} 

class EditChildProfileVC: UIViewController, DataEnteredDelegate { 

    var locationSentFromGeoDetailsVC:String? 
    @IBOutlet weak var schoolAddressTF: UITextField! 

    override func viewDidLoad() { 
     super.viewDidLoad() 
     print("EditChildProfileVC") 
     self.title = ChildName 
    } 

    func setLocations(info: String) { 
     NSOperationQueue.mainQueue().addOperationWithBlock { 
      self.locationSentFromGeoDetailsVC = info 
      self.schoolAddressTF.text = self.locationSentFromGeoDetailsVC 
     } 
    } 

    override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) { 
     if segue == "GeoDetailsSegue" { 
      let vc = segue.destinationViewController as! GeoDetailsVC 
      vc.delegate = self 
     } 
    } 
} 
+0

Ist diese Zeile 'vc.delegate = Selbst 'genannt werden? Warum vergleichst du den Abschnitt mit einer Zeichenfolge? Es sollte "segue.identifier" sein – alexburtnik

+0

Pass einfach die Daten von preparedForSegue ... – AMAN77

Antwort

1

Try segue == "GeoDetailsSegue"-segue.identifier == "GeoDetailsSegue", wie dies zu ändern:

override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) { 
    guard let segueIdentifier = segue.identifier else { return } 
    if segueIdentifier == "GeoDetailsSegue", 
     let vc = segue.destinationViewController as? GeoDetailsVC { 
     vc.delegate = self 
    } 
} 
+0

war es ein dummer Fehler ... thnx für die Hilfe. –

Verwandte Themen