iOS: изменение представления на backgroung не обновляет то, что вы видите перед возвратом приложения на передний план - PullRequest
2 голосов
/ 03 ноября 2011

Хорошо, я получил эту проблему: у меня есть приложение с экраном входа в систему, которое должно отображаться каждый раз, когда приложение переходит в фоновый режим и возвращается. Проблема в том, что предыдущий экран появляется на долю секунды после возврата приложения на передний план, потому что система обновляет только то, что видно после загрузки. Необходим полный переход до того, как приложение вернется на передний план. Да, я делаю переход на делегате приложения, в applicationDidEnterBackground. пробовал на каждом другом методе перехода назад / вперед, те же результаты. Код работает нормально, но перед тем, как появится экран входа в систему, вспыхнет экран.

Полный код выглядит следующим образом:

    - (void)applicationDidEnterBackground:(UIApplication *)application
       {               
           if (!([LogicCore loadPass] == nil || [[LogicCore loadPass] isEqualToString:@""])) //a password is set, 
           {
               [self.window.rootViewController dismissModalViewControllerAnimated:YES];//go back to the rootview, the login screen

           }
       }

Ответы [ 2 ]

1 голос
/ 04 ноября 2011

Я забыл об этом, но вы можете закрыть свое приложение, когда пользователь сделает это. Единственная реальная проблема - они снова видят ваш экран-заставку во время загрузки приложения.

Для того, чтобы ваше приложение завершало работу, когда оно было фоновым (приостановлено), поставьте клавишу «Приложение не работает в фоновом режиме» - необработанный ключ: UIApplicationExitsOnSuspend - ДА.

Не идеальное решение, но единственное, которое я могу найти на данный момент.

0 голосов
/ 03 ноября 2011

Попробуйте сделать вызов в applicationWillEnterForeground:, который «сообщает, что ваше приложение выходит из фона и возвращается на передний план, но оно еще не активно».

Вы делаетеэто после произошел переход (изменение будет «поставлено в очередь», чтобы произойти после отображения представления) - вы хотите сделать это раньше, поэтому вы должны использовать методы will.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...