Изменить контроллер rootview, когда приложение переходит в фоновый режим (applicationDidEnterBackground)

Мне нужно показать черный экран, когда пользователь действительно идет в фоновом режиме. (Не приложение WillResignActive).

В результате я меняю свой корневой контроллер вида, как это в applicationDidEnterBackground.

//Before this, there will be Sync web-service call...normally, it is fast..time out is 2 second  
dispatch_async(dispatch_get_main_queue(), ^{
    UIViewController *vc = [[UIViewController alloc] init];
    [vc.view setBackgroundColor:[UIColor blackColor]];
    [AppDelegate instance].window.rootViewController = vc;
});

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

цель c - правильное использование beginBackgroundTaskWithExpirationHandler

1 ответ

Попробуйте добавить новый вид в ваше окно, а не изменять корневой контроллер окна, когда приложение входит в фоновый режим, и удалите / скройте его в соответствии с вашими требованиями. Установите цвет фона представления как черный. Удачи.

Другие вопросы по тегам