Как обойти это новое предупреждение в Xcode 4.3.1: «Сцена недоступна из-за отсутствия точек входа ...»? - PullRequest
31 голосов
/ 17 марта 2012

У меня есть проект iOS с раскадровкой. Я недавно обновился до Xcode 4.3.1, и теперь появляется это новое предупреждение:

"Сцена недоступна из-за отсутствия точек входа и не имеет идентификатора для доступа во время выполнения через -instantiateViewControllerWithIdentifier:."

Проблема в том, что у меня есть несколько контроллеров навигации в раскадровке без точек входа к ним. Причина, по которой они у меня есть, заключается в том, что я могу встраивать в них другие представления, чтобы видеть панель навигации во время разработки в Xcode. Фактический контроллер навигации, на который эти представления помещаются во время выполнения, отсутствует в раскадровке (старый код, который еще не был перенесен в раскадровку).

Кто-нибудь нашел хороший обходной путь для этого? Я хотел бы сохранить мой код в чистоте без предупреждений.

Ответы [ 7 ]

67 голосов
/ 17 марта 2012

Вы можете просто установить идентификатор. В Xcode> 5 в инспекторе идентичности на правой панели вы найдете поле под названием «Storyboard ID». Поместите туда любую строку, и Xcode снова будет счастлив.

Он просто хочет знать, что вы можете достичь его (через этот идентификатор), если хотите.

16 голосов
/ 20 октября 2012

В более новых версиях Xcode: просто установите заголовок в Title в Инспекторе Атрибутов, а затем установите идентификатор в Storyboard ID в Инспекторе Идентификаций вашего контроллера.

10 голосов
/ 09 января 2013

Возможно, вы случайно скопировали и вставили контроллер представления поверх реального.

Попробуйте перетащить оскорбительный вид, чтобы увидеть, есть ли что-нибудь под ним.

1 голос
/ 19 апреля 2015

Необходимо установить идентификатор для каждого ViewController (включая контроллер навигации) в поле «Storyboard ID» панели «Identity Inspector».

В панели «Инспектор атрибутов» прокрутите вниз до раздела «Контроллер представления», и если «is Initial Control Controller» не установлен, отметьте это.

Теперь запустите приложение.

1 голос
/ 12 января 2015

В Xcode 6 - вы можете получить эту ошибку, если у вас есть новый контроллер представления, который стоит сам по себе.Возможно, вы создали его и не использовали переход для подключения экрана.

1 голос
/ 18 июля 2012

Вы можете щелкнуть на контроллере навигации и в инспекторе атрибутов нажать кнопку «Начальный контроллер вида», это тоже должно работать

0 голосов
/ 29 октября 2014

Заголовок: Настройка "is Initial View Controller" (с использованием Xcode 6.1)

Фон: Сборка не выполнена с "Сцена недоступна из-за отсутствия точек входаи не имеет идентификатора для доступа во время выполнения через -instantiateViewControllerWithIdentifier:. "

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

Разрешение: В моем случае флажок «is Initial View Controller» не был установлен

Свойство «is Initial View Controller» можно найти в крайнем правом углупанель окна Xcode по умолчанию или находится под -> Вид -> Утилиты -> Показать инспектор атрибутов

Если вы не видите никаких свойств, установленных в «Инспекторе атрибутов», выберите «Просмотреть контроллер"в области раскадровки.Маленькая круглая кнопка с квадратом посередине (или первая кнопка слева)

Когда вы выбираете «View Controller», вы должны увидеть, что поле «Attribute Inspector» теперь заполнено различными настройками свойств.

В области «Инспектор атрибутов» прокрутите вниз до раздела «Контроллер представления», и если «Первоначальный контроллер представления» не установлен, отметьте это.

Запустите проект.Надеюсь, что это помогает и работает.

...