应用程序在前景和背景中

时间:2011-12-17 22:59:51

标签: iphone ios5 xcode4.2

我的视图控制器中有一个按钮ON / OFF,当用户打开它时播放一些音乐。现在,如果用户单击iPhone主页按钮并再次重新启动我的应用程序,该按钮将显示为“开启”,但没有播放音乐。因此,用户必须再次点击ON-OFF-ON才能再次开始播放音乐。

任何人都知道如何调用我的ON / OFF视图控制器按钮,以便在app进入后台时将其设置为OFF并将其设置为ON并在这些应用代表中进入forground时播放音乐?

我知道我需要写一个plist文件按钮& applicationDidEnterBackground上的音乐状态。我不知道如何从appdelegate获取这些动作,因为它们是在我的viewcontroller中定义的。

类似地,当应用程序进入前台时,我将读取已保存的plist文件,然后再次设置音乐状态和按钮。同样,我不知道如何从委托调用我的控制器方法。

- (void)applicationDidEnterBackground:(UIApplication *)application
{

     NSLog(@"Inside applicationDidEnterBackground");
}

- (void)applicationWillEnterForeground:(UIApplication *)application
{

    NSLog(@"Inside applicationWillEnterForeground");

}

2 个答案:

答案 0 :(得分:0)

一种可能的方法是从应用程序委托发送消息到视图控制器以保存或恢复状态。然后,可以访问其内部状态的视图控制器可以实现任何所需的保存和恢复方法。

如果app委托没有直接包含对活动视图控制器的引用,它可以将链接发送到根视图控制器,然后根视图控制器可以向下一个视图控制器发送消息,等等。控制器保存它认为重要的任何东西。

答案 1 :(得分:0)

您需要做的就是在视图控制器中订阅UIApplicationDidEnterBackgroundNotification通知

[[NSNotificationCenter defaultCenter] addObserver: self
                                         selector: @selector(handleEnteredBackground:) 
                                             name: UIApplicationDidEnterBackgroundNotification
                                           object: nil];

Theres也是DidEnterForeground的通知。