2015-09-15 3 views
0

Некоторое время назад мы решили поместить нашу логику загрузки приложения в отдельную функцию, которая вызывается после DidFinishLaunching. Мы делаем, показывая новый UIViewController, который содержит заставку по умолчанию (как описано here). Двумя причинами этого являются:Отображение iOS LaunchScreen на более длительное время

  • Мы можем автоматически отображать текущий номер версии на заставке.
  • Если время загрузки занимает более 10-15 секунд, приложение будет убито ОС. У нас была эта ситуация один раз во время обновления версии до тех пор, пока большая реорганизация DB/file не заняла до 15 секунд. Если приложение было бы убито ОС, данные были бы оставлены в поврежденном состоянии.

Это хорошо работает. Теперь, поскольку iOS 8 все изменилось немного, и мы должны использовать стартовый экран xib или панель рассказов. Я попытался загрузить xib в UIViewController (наш собственный заставку), но это привело к исключению NSInternalInconsistencyException - загрузило «nib», но выходная точка просмотра не была установлена. Как я узнал, стартовые экраны должны быть чистыми static, как и исходные изображения запуска.

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

Редактировать: Ввод приложения в режим сна в DidFinishLaunching() не является вариантом, см. Второй пункт выше.

+1

его лучше отображать 'viewcontroller' при запуске в качестве« заставки », вы можете держать его на экране столько, сколько пожелаете. Нет другого способа, которым вы можете удерживать экран запуска в течение более длительного периода. –

+0

Надеюсь, данный ответ вам поможет @Philipp. –

+0

Возможно показать анимацию загрузки? –

ответ

-1

Вы не можете удерживать экран запуска в течение более длительного периода.

Вы можете добавить ViewController с default.png в applicationdidFinishLoading. Покажите этот контроллер на несколько секунд (5 секунд) и замените его на следующий контроллер.

Note: По состоянию руководящих принципов AppStore, вы не должны задержки запуска вас больше, чем это необходимо.

+0

Как написано, это то, что я уже делаю сейчас. – Philipp

Смежные вопросы