在显示视图之前从后台恢复后修改UIViewController

时间:2013-01-16 22:01:36

标签: objective-c cocoa-touch uiviewcontroller

我希望在应用程序处于后台后修改我的UIViewController,然后再将其置于最前面,我想在显示之前修改视图。我怎么能这样做,因为-viewWillAppear:没有被调用?我应该在- application:didBecomeActive中获取对正在显示的视图控制器的引用,然后修改视图吗?重要的是视图在可见时不会被修改。

1 个答案:

答案 0 :(得分:0)

您的控制器可以将自己注册为UIApplicationDidBecomeActiveNotification通知的观察者,以便根据需要做出反应。


仅凭这一点无法保证视图可见或不可见。

UIApplicationDelegate协议文档声明在调用-applicationDidBecomeActive:之后将触发通知。根据触发该调用的事件,视图可能已经或可能尚未显示。例如,如果应用因来电而被暂停,那么当用户拒绝来电时,该视图可能仍然可见,并且当应用再次变为有效时,该视图仍然可见。

您可能需要跟踪应用在变为非活动状态后是否实际进入后台,以决定再次变为活动时要采取的操作。 UIApplicationWillEnterForegroundNotification听起来像您正在寻找的通知,但仅此一项不会告诉您应用程序是否被某些事件中断,或者用户是否通过按主页按钮将其暂停。您还需要考虑应用程序可能已被暂停,终止,然后重新启动的情况。

iOS应用程序编程指南中的

Managing App State Changes将需要阅读以了解您希望如何响应不同的可能转换。