iOS: восстановление ранее видимого представления, когда приложение возвращается на передний план? - PullRequest
0 голосов
/ 14 марта 2012

Я разрабатываю приложение для iPhone (iOS 5+) с использованием раскадровок.Первый экран приложения - это заставка / экран входа в систему, который проверяет учетные данные Facebook и позволяет читать и принимать Условия использования.Если имеются действительные сохраненные учетные данные и оглавление было принято ранее, это представление автоматически делает модальный переход (с использованием эффекта перекрестного растворения) к первому «реальному» представлению приложения - контроллеру панели вкладок с тремя вкладками.

В настоящее время я реализую логику фонового и переднего плана.Проблема заключается в том, что при нажатии кнопки «Домой» и последующем возврате экран входа в систему кратковременно отображается перед восстановлением правильного предфонового представления.(Default.png приложения имеет фон экрана входа в систему, так что это может быть либо скриншот, либо фоновый скриншот фактического экрана входа в систему; я еще не тестировал замену Default.png, чтобы определить разницу.)

Почему это?Насколько я могу судить, фоновое приложение должно просто сделать снимок экрана с видом, который виден на экране, скажем, при нажатии кнопки «Домой», и восстановить его до восстановления действительной функциональности представления при возврате на передний план.В этом случае это будет одна из вкладок контроллера панели вкладок.Виноват ли модальный переход между экраном входа в систему и контроллером панели вкладок, или что-то еще?

(я всегда чувствовал, что перекрёстный переход модального перехода от экрана входа в систему к первому «полезному» экрану)это немного грязно, так как ИМХО модальные переходы, по-видимому, подразумевают, что то, к чему вы обращаетесь - это то, что вы позже отклоните, чтобы вернуться к экрану «из». То, что я делаю сейчас, - это просто оставлю цель модального переходавидимо до бесконечности. Если в этом проблема, я бы хотел, чтобы кто-то предложил лучший способ отображения, перехода от экрана входа в систему и его «сбрасывания».)

Ответы [ 2 ]

1 голос
/ 15 марта 2012

ОК, оказывается, это было просто несоответствие симулятора / устройства относительно Default.png. Этот комментарий к другому вопросу заставил меня задуматься о проверке.Время подать отчет об ошибке.

0 голосов
/ 14 марта 2012

Если я правильно помню, у Apple есть какой-то старый демонстрационный код, который «запоминает», какой вид показывал контроллер навигации до того, как он ушел в фоновый режим.

Отказ от ответственности, я не работал с раскадровками, поэтому я не знаю особенностей выполнения того, что вы пытаетесь сделать.

Если бы это был я, я быd создать контроллер представления или контроллеры при запуске, а затем добавить экран входа в систему, только если логика делегата приложения посчитает это необходимым.Только тогда, после настройки иерархии представления, я все представляю.

Это выполняет две вещи.Мой экран входа в систему существует только и виден при необходимости.Кроме того, экран входа не будет мигать без проблем.Да, и в качестве третьего преимущества вы можете представить любой вид, который вам нравится.

Я бы предложил, предполагая, что вышеупомянутый демонстрационный код не работает для вас, что вы захотите сохранить какую-то ссылку, тег или идентификатор текущего видимого представления в NSUserDefaults и считайте это при настройке иерархии представления при запуске.

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