2014-01-14 26 views
0

我有一個模式視圖控制器提出,並在我解僱它之前,我需要調用委託方法,告訴父視圖控制器更新。 (當解除模態視圖控制器時,不會調用類似viewWillAppear的方法)。調用委託方法之前查看解僱

所以我的代碼如下所示:

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

很簡單。發回消息,說,現在更新!然後只是駁回視圖。但是,在調用這兩行時,委託方法從不運行。所以我檢查它設置正確的委託。當我提出模態視圖時,我設置了委託,所以它的全部連接。

它就好像委託方法在視圖被解除之前沒有機會運行。這可能嗎?你認爲這可能是什麼問題?

謝謝。

+0

你檢查的委託設置,當你來到運行代碼? – Wain

+0

如果委託相關的事情都很好,只是試圖在委託方法內消除視圖。 –

+0

@C_X爲什麼?當有一個可以在解僱方法中使用的完成塊時? – Abizern

回答

3

之前調用您的委託方法首先檢查它是否是可用的或不

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

[self dismissViewControllerAnimated:YES completion:nil]; 
+0

我從來不知道如何使用'respondsToSelector',導致我遇到問題!原來我是從兩個地方展示模態視圖。導致只有一個設置委託正確。 –

0

您是否看到最後一個參數completion?在視圖控制器關閉後調用該塊。在那裏做你想做的事。

相關問題