如何去检测dismissModalViewControllerAnimated

时间:2012-07-16 14:09:59

标签: objective-c ios

有没有办法实现自己的机制来检测dismissModalViewControllerAnimated何时消失?我已经尝试过viewdiddisappear,但是没有被调用,因为我认为只有在从视图中删除子视图时才调用它。对于模态的情况,我认为iOS对待它们的方式不同。

有什么想法吗?

我希望我的代表在这个模态视图被驳回后做一些动作。

感谢。

4 个答案:

答案 0 :(得分:1)

在关闭视图控制器之前,使用NSNotificationCenter发布通知。将您的其他视图控制器添加为观察者。这是一种简单的广播活动方式。

所以在你解雇之前:

[[NSNotificationCenter defaultCenter] postNotificationName:@"DismissModalViewController" 
                                                    object:nil];

[self dismissModalViewControllerAnimated:YES];

然后在你的视图控制器中

[[NSNotificationCenter defaultCenter] addObserver:self 
                                         selector:@selector(yourCallback)
                                             name:@"DismissModalViewController" 
                                           object:nil];

回调类似于:

- (void) yourCallback
{
    // some code to run when modal view controller is dismissed
}

答案 1 :(得分:0)

添加在dismissModalViewController

之前调用的委托方法

答案 2 :(得分:0)

您可以使用父视图控制器的viewWillAppear。通过父视图控制器,我的意思是presentViewController(或presentModalViewController

的接收者

答案 3 :(得分:0)

我发现了这个问题。

进行此调用的视图控制器,我忘了设置代理人是谁。