我试图在从导航控制器发回信号之前下载数据,但是,我的准备工作并不是在等待下载信息。甚至没有被称为甚至被称为。
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")
}
有没有人知道我可能做错了什么?
感谢。
答案 0 :(得分:2)
不从后退按钮调用PrepareForSegue。仅在您按下/显示控制器时才会调用它。
解决方案是使用自定义操作添加您自己的后退按钮:
self.navigationItem.leftBarButtonItem = [[UIBarButtonItem alloc]initWithTitle:@"Back" style:UIBarButtonItemStyleDone target:self action:@selector(backTapped:)];
点按时调用您的方法
-(void)backTapped:(id)sender {
reloadProgram()
}