2010-07-05 63 views
1

我试图找到一条消息,我可以覆盖,然后将更改保存到我的应用程序。当应用程序终止时,什么消息被发送到UIView?

在MainWindow.xib我已经放置了一个UIView并将其类(在界面生成器中)设置为我的自定义视图TouchDrawView。

在TouchDrawView我有一堆处理触摸事件的代码和2个跟踪这些触摸事件的数组。

我的应用程序是由AppDelegate启动的,但它没有提及此TouchDrawView。它只是启动应用程序。

我想要做的是在应用程序终止时保存我的2个数组 - 我可以在TouchDrawView中执行此操作,但是我不知道当整个应用程序即将终止时,此UIView发送的消息是什么, t在AppDelegate中执行它,因为它没有对2数组或自定义UIView的引用

回答

1

UIView实例不会在应用程序终止时发送任何消息。

还有另一个简单的方法来获取应用程序状态更改的通知:通知。您可以注册通过[NSNotificationCenter defaultCenter]发送的通知。

对于旧版本的iPhone OS,有一个。从iOS 4开始,您还应该听取UIApplicationDidEnterBackgroundNotification,准备终止。

+0

感谢队友 - 它的工作 – TheLearner 2010-07-05 09:49:46

0

简而言之,无用的答案是应用程序终止时不会发送消息UIView

您需要考虑模型 - 视图 - 控制器,因为这就是Cocoa和Cocoa Touch的设计。在这三个中,如果一条消息直接发送给任何它将是控制器。在你的情况下,这将是与你的观点对话的UIViewController

坏消息是那里也没有这样的信息。

一个应用程序关闭,而不是一个单独的屏幕/视图。

有(至少)两种方式来做你想做的事情。首先,您可以保存视图控制器发布时的状态。 (那种摸起来我错了。)

他们的方式,我做我的应用程序是在你的UIApplicationDelegate来监听applicationWillTerminate消息,并遍历视图层次和保存每个视图控制器的状态。当系统启动时,您可以做相反的事情。我在博客上发帖here

+0

是的,我也觉得这是一个混乱的方式做到这一点。我将来会开始使用控制器。 – TheLearner 2010-07-05 09:50:35

相关问题