在查看解雇之前调用代理方法

时间:2014-01-14 13:51:32

标签: ios iphone objective-c delegates modalviewcontroller

我有一个模态视图控制器,在我解除之前,我需要调用一个委托方法来告诉父视图控制器更新。 (因为在解除模态视图控制器时不会调用像viewWillAppear这样的方法)。

所以我的代码看起来像这样:

[delegate addEquipmentDidSave:YES];
[self dismissViewControllerAnimated:YES completion:nil];

很简单。发回信息,说,立即更新!然后只是解雇视图。但是,虽然这两行都被调用,但委托方法永远不会运行。所以我检查它设置的委托是否正确。当我提出模态视图时,我设置了委托,所以它全部连接。

就好像委托方法在视图被解除之前没有机会运行一样。这可能吗?您认为可能是什么问题?

感谢。

2 个答案:

答案 0 :(得分:3)

在调用您的委托方法之前,先检查它是否可用

if ([self.delegate respondsToSelector:@selector(addEquipmentDidSave:)] )
{
    NSLog("Yes it's available");
    [self.delegate addEquipmentDidSave:YES];
}

[self dismissViewControllerAnimated:YES completion:nil];

答案 1 :(得分:0)

你看到最后一个参数,一个名为completion的参数吗?在取消视图控制器后调用该块。做你想做的事。