- (void)applicationDidEnterBackground:(UIApplication *)application {
mosquitosViewController *mvc = [[mosquitosViewController alloc] init];
[mvc pauseLayers];
}
Проблема с тем, что вы пытаетесь сделать выше, заключается в том, что вы создаете совершенно новый экземпляр вашего контроллера представления, который не отображался на экране.Вот почему ничего не происходит, когда вы отправляете сообщение pauseLayers
.
Что вам нужно сделать, это зарегистрироваться, чтобы получать уведомления о том, когда ваше приложение выходит из фонового режима, и вызывать соответствующие методы (pauseLayers
и resumeLayers
) когда приходит это уведомление.
Вы должны добавить следующий код где-нибудь в вашей реализации mosquitosViewController
(я обычно делаю это в viewDidLoad):
// Register for notification that app did enter background
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(pauseLayers)
name:UIApplicationDidEnterBackgroundNotification
object:[UIApplication sharedApplication]];
// Register for notification that app did enter foreground
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(resumeLayers)
name:UIApplicationWillEnterForegroundNotification
object:[UIApplication sharedApplication]];