viewController如何知道应用程序何时完成启动?

时间:2012-06-22 00:00:08

标签: iphone model-view-controller uiview uiviewcontroller uiapplicationdelegate

我在xcode 4.3.1中制作了一个简单的单视图程序。我希望视图可以执行不同的操作,具体取决于它是在第一次启动应用程序时还是在恢复时加载。

有谁能告诉我这样做的最佳方法?

appDelegate没有引用我的viewController所以我不确定我是否可以从我的AppDelegate didFinishLaunchingWithOptions方法中传递一个变量。

当ViewController似乎没有在任何地方实例化时,AppDelegate如何与ViewController通信?

谢谢!

2 个答案:

答案 0 :(得分:1)

您可以使用NSNotificationCenter了解应用程序何时进入前台,然后您可以注册各个VC以关注该事件。例如:

- (void)loadView {
[[NSNotificationCenter defaultCenter] addObserver:self
                                         selector:@selector(applicationWillEnterForeground)
                                             name:UIApplicationWillEnterForegroundNotification
                                           object:nil];
}

VC在loadView(或任何其他方法)期间注册。然后当应用程序进入前台时,方法

- (void)applicationWillEnterForeground;

被调用。只需记住在dealloc或viewDidUnload中取消注册。

- (void)dealloc {
[[NSNotificationCenter defaultCenter] removeObserver:self];
[super dealloc];
}

答案 1 :(得分:0)

您可以使用[application:didFinishLaunchingWithOptions:]来确定您是否刚刚开始。它只在您启动时调用一次。你可以将它与设置一些标志和 [applicationWillEnterForeground:(UIApplication *)application]确定您是启动还是只是返回前台。