2017-02-23 66 views
2

我從函數中獲取schoolAddress的值。視圖消失後,我傳遞schoolAddress的值。米試圖從GeoDetailsVC通過學校地址的值EditChildPoofileVC .. thanx提前將值傳遞給前一個viewController,不調用委託方法

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

這是行'vc.delegate =自我「實際上被稱爲?你爲什麼比較segue和一個字符串?它應該是'segue.identifier' – alexburtnik

+0

只需傳遞prepareForSegue ... – AMAN77

回答

1

嘗試改變segue == "GeoDetailsSegue"segue.identifier == "GeoDetailsSegue",像這樣:

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

的數據,這是一個愚蠢的錯誤... thnx的幫助。 –

相關問題