Ссылка на раскадровку в Xcode, где мы должны ее использовать?


есть один новый элемент управления в Xcode7 beta назван Storyboard Reference. Ниже приведено его изображение.

Он имеет свое описание как

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

Так что вопросы

  1. в каких ситуациях мы должны использовать это?
  2. это раньше вид подключения двух раскадровка контроллеры через переход?
  3. используется ли этот подход для замены VC другой раскадровки программно?
  4. будет ли он работать на старой версии iOS (до iOS 9)?
7 58

7 ответов:

обновление (6 января 2016): Я просто хочу быстро упомянуть, что использование ссылок раскадровки очень простой и поможет вам использовать раскадровки в гораздо более чистой и ремонтопригодной форме. хороший вариант использования для него, например, a UITabBarController с несколькими вкладками. Просто создайте раскадровку для каждой вкладки и в Main.Storyboard ссылка на эти отдельные раскадровки с помощью ссылок раскадровки. использование очень просто: после создания раскадровки ссылка вам нужно только дать ему filename отдельной раскадровки, которую вы хотите связать и установить начальное представление-контроллер в том, что отдельные раскадровки. Вот так! :)

теперь следует оригинальный ответ Я дал вопрос @YogeshSuthar.

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

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

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

  4. [обновление thx до @AlexBasson] ссылки раскадровки могут быть развернуты в iOS 8,OS X 10.10 и watchOS 1.

использование раскадровки ссылка

Ну другие ответы верны на мои вопросы.

и я хочу опубликовать использование Storyboard Reference, который используется, чтобы открыть вид контроллеров от другого раскадровку через переход без написания какого-либо кода. :)

шаги

  1. сначала создайте 1 новую раскадровку имя это все, что вы хотите(я назвал его NewStoryboard).
  2. Поместите контроллер вида (или любой контроллер вида) в NewStoryboard.
  3. дать Storyboard ID(Я дал newVC).

enter image description here

  1. вернитесь к основной раскадровке.
  2. перетащить Storyboard Reference управление в этой раскадровке.
  3. выберите Storyboard Reference и Attributes Inspector.
  4. выберите новую раскадровку NewStoryboard.
  5. укажите идентификатор ссылки как newVC(который вы использовали в NewStoryboard раскадровка).
  6. подключить Storyboard Reference через segue от ViewController. Теперь он откроет этот VC через segue без написания кода. :)

enter image description here

  1. будет ли он работать на старой версии iOS (до iOS 9)?

похоже, что нет :/

раскадровка ссылки требуется приложение, ориентированное по крайней мере iOS 9.0, OS X 10.11, или WatchKit 2.0 для watchOS.

источник: библиотека разработчиков watchOS: добавление ссылки на другую раскадровку

  1. будет ли он работать на старой версии iOS (до iOS 9)?

вот обходной путь (проверено Xcode 8 и iOS 8.2):

  1. в контроллере вида для вкладки добавьте вид контейнера, рамка которого занимает весь вид (при необходимости добавьте ограничения для этого).
  2. удалить встроенный контроллер вида, который был автоматически добавлен вид контейнера.
  3. создайте свою ссылку раскадровки и перетащите сегмент внедрения из представления контейнера в эту ссылку.
  4. Если вы еще этого не сделали, создайте раскадровку и назначьте ей ссылку на раскадровку.
  5. в новой раскадровке можно смоделировать внешний вид панели вкладок, выбрав первый контроллер вида, а в Инспекторе атрибутов в разделе смоделированные метрики -> нижняя панель выберите панель вкладок для отображения (например. Полупрозрачный.)

screenshot

только что протестирована ссылка раскадровки в Xcode 7 с iOS 8, и это не удалось.

Illegal Configuration: Storyboard References cannot be the destinations of 
relationship segues prior to iOS 9.0

последний библиотека разработчиков iOS документация В Xcode-Релизы добавлена эта заметка, а также (текущая версия: Xcode 7.2.1):

ссылки раскадровки теперь могут быть развернуты в iOS 8, OS X 10.10 и watchOS 1.

Это хорошая новость но все же имейте в виду, что:

ссылки раскадровки не могут быть назначениями отношений сегменты до iOS 9.0

Так что если вы знаете об этих двух точках маркера, то вы хорошо идти :)

когда у нас есть большое приложение со слишком большим количеством экранов и модулей, Разделение раскадровки на несколько раскадровок в соответствии с модулями является хорошим и удобный вариант. При использовании нескольких раскадровки, если вам нужно подключите segue между viewControllers различных раскадровки, вы можете используйте этот элемент управления. Если вы используете этот контроль, нет необходимости делать кодирование питания, как instantiateViewController и pushViewController и т. д. Вы можете просто подключить segue, выполнить segue и если вам нужно, вы можете использовать prepareForSegue.

давайте обсудим все ваши вопросы :

  1. в каких ситуациях мы должны использовать это? - Я думаю, что вы должны найти ваш ответ выше.

  2. используется ли это для подключения двух контроллеров вида раскадровки через segue? - да

  3. этот подход используется для замены VC другой раскадровки программно? - нечего делать с кодированием при использовании этого контроль

  4. будет ли он работать на старой версии iOS (до iOS 9)? - это может сработать, я не пытайтесь это