在导航控制器的后退按钮上准备Segue

时间:2016-05-26 15:20:32

标签: ios swift

我试图在从导航控制器发回信号之前下载数据,但是,我的准备工作并不是在等待下载信息。甚至没有被称为甚至被称为。

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")
}

有没有人知道我可能做错了什么?

感谢。

1 个答案:

答案 0 :(得分:2)

不从后退按钮调用PrepareForSegue。仅在您按下/显示控制器时才会调用它。

解决方案是使用自定义操作添加您自己的后退按钮:

self.navigationItem.leftBarButtonItem = [[UIBarButtonItem alloc]initWithTitle:@"Back" style:UIBarButtonItemStyleDone target:self action:@selector(backTapped:)];

点按时调用您的方法

-(void)backTapped:(id)sender {
    reloadProgram()
}
相关问题