0

我想修改我的UIViewController应用程序已经在后台,然后再次被带到前面,我想在它显示之前修改视图。我怎么能这样做,因为-viewWillAppear:没有被调用?我应该- application:didBecomeActive获取对正在显示的视图控制器的引用然后修改视图吗?重要的是视图在可见时不被修改。

4

1 回答 1

0

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


仅此一项并不能保证视图可见或不可见。

UIApplicationDelegate 协议文档声明将在调用 -applicationDidBecomeActive: 后触发通知。根据触发调用的事件,视图可能已经或可能不可见。例如,如果应用程序由于来电而暂停,则视图可能在用户拒绝呼叫时保持可见,并且在应用程序再次激活时仍然可见。

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

需要阅读 iOS 应用程序编程指南中的管理应用程序状态更改,以了解您希望如何响应不同的可能转换。

于 2013-01-16T22:16:46.710 回答