IOS 8: запуск экрана StoryBoard появляется черным [один файл XIB работает отлично]
Итак, я попытался создать раскадровую версию для моего приложения iOS 8, используя этот учебник
Однако, когда я запускаю приложение, я получаю только черный экран. Один файл screen.xib запуска запускается отлично, однако, когда я пытаюсь использовать раскадровку, он не работает.
Я попробовал раскадровку с помощью всего одного контроллера вида, но он все еще дает мне черный экран, поэтому я считаю, что проблема связана с файлами раскадровки в моей настройке. Любые идеи?
[XCode version 6.4]
EDIT: Я просто хочу уточнить, что экран запуска выглядит черным. Основная раскадровка сама по себе отображается правильно, когда приложение закончило загрузку
Ответы
Ответ 1
Прочитайте учебник и протестируйте его, и он не говорит о двух вещах:
1: вам нужно добавить UIViewController
в ваш файл .storyboard
, а затем выбрать его как начальный контроллер.
2: Если вы хотите изменить не только экран запуска, вам нужно перейти к настройкам проекта и установить "Основной интерфейс" на соответствующий .storyboard
.
После этого все, что вам нужно сделать, это отредактировать соединения UIButton/Label/etc с вашими классами ViewController.
EDIT:
Для пояснения вы можете установить UIView в качестве начального контроллера, выбрав его в соответствующем файле раскадровки, а затем откройте Инспектор атрибутов. Параметр "Исходный контроллер" находится в середине.
Ответ 2
Для пользователей, использующих UIImageView на экране запуска
Убедитесь, что вы используете имя изображения без расширения в инспекторе атрибутов.
Так, например, если ваш файл изображения имеет имя launcher.png
, используйте только launcher
как имя изображения.
Это покажет изображение как недействительное (?) в редакторе, но будет корректно отображаться при запуске на устройстве.
(Не спрашивайте меня, почему это работает так. Спросите Apple.)
![введите описание изображения здесь]()
Ответ 3
Ни один из ответов не требует всех необходимых шагов, поэтому это исчерпывающее решение.
Раскадровка
Начните с создания LaunchScreen.storyboard. Xcode > File > New > File... > Storyboard > LaunchScreen.storyboard и добавьте его во все соответствующие цели.
В этой раскадровке создайте единый контроллер вида типа UIViewController
. Сделайте все, что требуется вашему экрану запуска, затем выполните следующие действия:
-
LaunchScreen.storyboard
> Показать инспектор файлов > Использовать в качестве экрана запуска
-
LaunchScreen.storyboard
> Просмотреть контроллеp > Показать инспектор атрибутов > Контроллер начального представления
- Проект > Общие сведения > Информация о развертывании > Основной интерфейs > LaunchScreen
Повторите для [iPhone] и [iPad]
- Проект > Общие > Значки приложений и изображения запускa > Файл экрана запускa > LaunchScreen
-
При правильной настройке ваш Info.plist должен иметь LaunchScreen.storyboard, без .storyboard в свойствах UILaunchStoryboardName
и UIMainStoryboardFile
:
<key>UILaunchStoryboardName</key>
<string>LaunchScreen</string>
<key>UIMainStoryboardFile</key>
<string>LaunchScreen</string>
Примечания:
- Это несовместимо с наличием устаревших изображений для более старых устройств с использованием файла экрана запускa > Активы.
- Обратите особое внимание на
LaunchScreen.storyboard
и Main.storyboard
. Один используется для запуска, другой для точки входа в приложение. У обоих должно быть установлено Контроллер начального просмотра.
Ответ 4
В раскадровке, которую вы используете для запуска, убедитесь, что вы выбрали опцию Является ли контроллер начального представления для самого единственного контроллера представления, присутствующего в нем.
Ответ 5
I Belive У меня, возможно, была аналогичная проблема, которая требовала что-то отличное от вышеупомянутых ответов.
Я создал новый экран запуска в файле .storyboard, а затем, после того, как он не появился, я привел к появлению нового .xib файла, который все еще не появлялся при запуске приложения.
Я понял, что некоторые из изображений, которые у меня были на экране запуска, имели сборку Outlet для старого файла .swift. После удаления этого из LaunchScree.xib экран запуска работал нормально.
![сломанная розетка]()
Обратите внимание на предупреждающий знак litte в ссылке на выход → ![Предупреждение]()
Ответ 6
Удостоверьтесь, что вы установили точку входа и в вашем общем контакте с информацией убедитесь, что у вас установлено значение для изменения размера от nib. Также убедитесь, что на вашей общей вкладке задана начальная точка. В информации о развертывании.
Надеюсь, что это поможет
Ответ 7
Слишком длинный путь, благодаря Apple! Я, наконец, обнаружил, что мне пришлось удалить фактический UIImageView в моем контроллере просмотра, а не только изображение, чтобы перейти на другое изображение. Попробовал переименовать изображения, заменив их разными способами, удалив кеши, удалив приложение с устройства, выполняя очистку перед зданием. Первоначальное изображение ушло от везде, насколько я мог видеть, но оно все равно появлялось. Наконец, я добавил новый контроллер UIImageView сверху в контроллер представления, и это заняло новое изображение. Затем я просто удалил старый UIImageView, и все было в порядке.
Ответ 8
Правильно ли установлен Основной интерфейс на "Основной" (имя раскадровки) в информации о развертывании?
Ответ 9
У меня был черный экран вместо моего всплеска после локализации моего приложения. В разделе "Локализация" инспектора файлов LaunchScreen.storyboard у меня был только один тик для одной локализации. Итак, я добавил галочку для второй локализации, и это исправило проблему.
Ответ 10
В решении используется имя изображения без расширения png.
Например, если ваш файл изображения называется "img.png", используйте только "img".
Это покажет изображение как недопустимое (?) в редакторе, но будет корректно отображаться при запуске.
Это происходит потому, что LaunchScreen.storyboard принимает только изображения внутри Assets.xcassets и способ ссылки на изображения внутри Assets.xcassets - это имя ресурса без расширения.
Я думаю, что использование имени без расширения - это обходной путь, который работает.