Самый простой способ - установить UIApplicationExitsOnSuspend в Info.plist.
Это действительно не ожидаемое поведение, хотя. Пользователи ожидают увидеть приложение "там, где они остановились", особенно если они ненадолго покинули приложение (например, потому что им позвонили).
Ваш фрагмент кода добавляет контроллер представления, но вряд ли будет работать, так как ваш делегат приложения не является UIViewController. Он также ничего не делает для удаления старых контроллеров представления.
РЕДАКТИРОВАТЬ: Если все, что вам нужно сделать, это отобразить заставку (или что-то), то это примерно так:
- В
-applicationDidEnterBackground:
добавьте представление "заставки" (не контроллер представления) к self.window
. (iOS возвращает «снимок экрана» после возврата из -applicationDidEnterBackground:
и использует его в анимации переключения приложений; вы хотите, чтобы это было то, что пользователь видит при переключении обратно в ваше приложение)
- В
-applicationWillEnterForeground:
делайте любую анимацию, которую хотите, и в конечном итоге удалите вид из окна (вызовите -removeFromSuperview).
РЕДАКТИРОВАТЬ 2: То же самое будет работать в -applicationWillResignActive:
/ -applicationWillBecomeActive:
, за исключением того, что это происходит в случае сна / пробуждения, которое может быть не тем, что вы хотите ...
Я бы не стал использовать контроллеры представления для этого, потому что попытка вставить контроллер представления в иерархию контроллеров представления, вероятно, будет проблематичной (например, вам нужно выяснить, с какого VC представить его, и вам нужно делайте "правильные вещи", если пользователь отображает фоновое изображение вашего приложения, когда ВК находится на экране, и ...)