Как завершить задачи в фоновом режиме, если задачи не находятся в AppDelegate?

У меня есть приложение со следующей иерархией:

- Tab bar controller:
    - Table view controller -> Some buttons
    - Table view controller -> Some buttons

При нажатии кнопок пользователю может потребоваться подождать от 1 до 10 секунд (в зависимости от интернет-соединения). Пока задача не будет выполнена, пользователь может выйти из приложения, а когда он вернется, он сможет увидеть загруженный контент.

Я понимаю, что мне нужно реализовать applicationDidEnterBackground() . Я прочитал руководство, однако я не понимаю, что, поскольку данные находятся в другом контроллере представления, как мне передать их делегату приложения? У делегата приложения нет всех данных, необходимых для завершения вычислений. Кроме того, если я на полпути, как мне передать его делегату приложения (без потери работы, которую я закончил)?


person Enrico Susatyo    schedule 28.06.2011    source источник


Ответы (1)


Зарегистрироваться в UIApplicationDidEnterBackgroundNotification и запустить задачу в ВК?

person tc.    schedule 28.06.2011
comment
Краткая версия примерно того, что я публиковал. Нет необходимости передавать что-либо делегату приложения; ознакомьтесь с уведомлениями, задокументированными в developer.apple .com/library/ios/#documentation/UIKit/Reference/ (прокрутите вниз до раздела «Уведомления» в самом низу), зарегистрируйте свой контроллер, чтобы он прослушивал соответствующие уведомления столько времени, сколько вам нужно. - person Tommy; 28.06.2011
comment
Извините за незнание уведомлений. Итак, прежде чем приступить к выполнению своей задачи, я пишу [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(theBigTask) name:UIApplicationDidEnterBackgroundNotification object:nil]; это то, что вы имели ввиду? - person Enrico Susatyo; 28.06.2011