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

Objective c 在显示视图之前从后台恢复后修改UIViewController,objective-c,cocoa-touch,uiviewcontroller,Objective C,Cocoa Touch,Uiviewcontroller,我想在应用程序进入后台后修改我的UIViewController,然后再次放到前台,我想在显示视图之前修改视图。既然-view将出现:未被调用,我该怎么做?我是否应该在-application:didBecomeActive中获取对正在显示的视图控制器的引用,然后修改视图?视图在可见时不要修改,这一点很重要。您的控制器可以将自己注册为通知的观察者,以便根据需要做出反应 仅此一点无法保证视图是可见的还是不可见的 UIApplicationLegate协议文档声明在调用-ApplicationID

我想在应用程序进入后台后修改我的
UIViewController
,然后再次放到前台,我想在显示视图之前修改视图。既然
-view将出现:
未被调用,我该怎么做?我是否应该在
-application:didBecomeActive
中获取对正在显示的视图控制器的引用,然后修改视图?视图在可见时不要修改,这一点很重要。

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


仅此一点无法保证视图是可见的还是不可见的

UIApplicationLegate协议文档声明在调用-ApplicationIDBecMeactive:后将触发通知。根据触发该调用的事件,视图可能可见,也可能不可见。例如,如果应用程序因来电而挂起,则当用户拒绝通话时,视图可能仍然可见,当应用程序再次激活时,视图仍然可见

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


需要阅读《iOS应用程序编程指南》,以了解您希望如何响应不同的可能转换。

是的,但在发送此通知时,视图控制器是否已经可见?@PeterWarbo有时,我会尝试澄清。这意味着支持什么样的行为?根据应用程序是否恢复(或如何恢复)和控制器是否由于某些应用程序内事件而显示,控制器的行为有所不同,这似乎很奇怪。感谢您的详细解释。这样做的原因是,用户可以在设置应用程序中翻转几个开关,然后当用户返回应用程序时,我需要重新绘制UI。由于我无法在UI中设置重画动画,因此它看起来会很邋遢,所以我希望在视图可见之前执行此操作。希望可以在ApplicationWilenterForeground中完成:@PeterWarbo听起来应该适合你。当你的应用程序处于非活动状态时,这些设置不应该改变,因此检查前景/背景转换应该可以让你获得想要的行为。