ich swift Protokoll lerne und pattern.But delegieren, muss ich wirklich mit dem folgenden Problem helfen, die mich leer ErgebnisseSwift Delegierte und Protokoll
Bei Viewcontroller 1 zurück:
protocol GetAllDataProtocol{
func didReadInfo(info : [[String:String]])
}
class ViewController1 : {
var delegate : GetAllDataProtocol?
var info_data : [[String:String]] = []
override func viewDidLoad() {
readData()
}
func readData(){
info_data.append(["ID" :"234FD","ADDRESS":"Maimi","TYPE":"A"])
delegate?.didReadInfo(info_data)
}
}
Dann bei Viewcontroller 2 :
class SubmissionViewController: UIViewController,UIPickerViewDataSource,UIPickerViewDelegate,GetAllDataProtocol{
var info_data = [[String:String]]()
@IBAction func submitTapped(sender: AnyObject) {
print("After : \(info_data)")
}
func didReadInfo(info: [[String : String]]) {
dispatch_async(dispatch_get_main_queue(),{
self.info_data = info
print("Before : \(self.info_data)")
})
}
}
Wenn es laufen
After : []
Warum lief es nicht "vorher"? und warum ich die Daten nicht bekommen kann.
Wann/wo setzen Sie den Delegaten? 'x.delegate = y'? – Wain
Entschuldigung für die späte Antwort, ich bin ein wenig beschäftigt bei der Arbeit.Aktuell verwende ich uitabbarcontroller.i möchte nur Daten von einem Tab auf einen anderen Tab übertragen. –