2009-09-27 34 views
2

有没有办法在viewWillDisappear中进行测试,因为应用程序正在退出而不是正常的方式被解雇?方法applicationWillTerminate在App Delegate中被调用当前视图已关闭。我想根据它是由于IBAction而被解雇还是用户点击菜单按钮来做不同的事情。确定UIViewController是否因应用程序退出而关闭?

谢谢!

回答

1

我还没有使用它你的目的还,但可能会出现UIApplicationWillResignActiveNotification通知之前applicationWillTerminate被调用。

只要将...

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(applicationWillResign:) name:UIApplicationWillResignActiveNotification object:NULL]; 

...到您的UIViewController来测试它。

+0

当应用程序由于菜单按钮而关闭时,UIApplicationWillResignActiveNotification似乎没有被触发。不过,applicationWillTerminate总是会触发。 – Alex 2009-09-27 00:57:04

3

您应该使用您的控制器中的,设置一个标志,然后检查viewWillDisappear实施中的标志。

NSNotificationCenter* defaultCenter = [NSNotificationCenter defaultCenter]; 
[defaultCenter addObserver:self  
        selector:@selector(applicationWillTerminate:) 
         name:UIApplicationWillTerminateNotification 
        object:nil]; 
+2

我看到该viewWillDisappear在该通知之前被调用。那么如何设置标志很重要? – dizy 2010-01-25 23:52:28

相关问题