ナビゲーションコントローラからセグリングする前にデータをダウンロードしようとしていますが、私のprepareforsegueは情報のダウンロードを待っていません。守らなければならないのは、呼び出されていなくてもよい。ナビゲーションコントローラのバックボタンでSegueを準備する
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
print("prepareforsegue")
reloadProgram() { (result:String) ->() in
print("reloaded")
}
}
func reloadProgram(completion: (result:String)->()) {
defaults.setBool(false, forKey: "gotColl")
if defaults.arrayForKey("selectedArray") != nil {
let selArray = defaults.arrayForKey("selectedIDArray") as! [String]
Networking().getVideos(selArray) { (result:String) ->() in
defaults.setBool(true, forKey: "gotColl")
}
}
completion(result: "done")
}
誰かが私が間違っている可能性のあるアイデアはありますか?
ありがとうございました。
あなたのメソッドを呼び出しますネットワーキングの範囲、ない? defaults.setBoolの直後、同じスコープ内にあります。 – Moritz
は、segueがプログラムで実行されていないときにのみ機能します(performSegueWithIdentifier ...)、segueを呼び出す前にネットワーク操作を実行して終了したら、 – javiazo
Eric、その完了はreloadprogram関数 –