我希望在应用程序处于后台后修改我的UIViewController
,然后再将其置于最前面,我想在显示之前修改视图。我怎么能这样做,因为-viewWillAppear:
没有被调用?我应该在- application:didBecomeActive
中获取对正在显示的视图控制器的引用,然后修改视图吗?重要的是视图在可见时不会被修改。
答案 0 :(得分:0)
您的控制器可以将自己注册为UIApplicationDidBecomeActiveNotification通知的观察者,以便根据需要做出反应。
仅凭这一点无法保证视图可见或不可见。
UIApplicationDelegate协议文档声明在调用-applicationDidBecomeActive:之后将触发通知。根据触发该调用的事件,视图可能已经或可能尚未显示。例如,如果应用因来电而被暂停,那么当用户拒绝来电时,该视图可能仍然可见,并且当应用再次变为有效时,该视图仍然可见。
您可能需要跟踪应用在变为非活动状态后是否实际进入后台,以决定再次变为活动时要采取的操作。 UIApplicationWillEnterForegroundNotification
听起来像您正在寻找的通知,但仅此一项不会告诉您应用程序是否被某些事件中断,或者用户是否通过按主页按钮将其暂停。您还需要考虑应用程序可能已被暂停,终止,然后重新启动的情况。
Managing App State Changes将需要阅读以了解您希望如何响应不同的可能转换。