Устраняет ли раскадровка необходимость в .nib? - PullRequest
19 голосов
/ 13 декабря 2011

С введением раскадровки я бы не стал создавать .xib / .nib при создании подкласса UIViewController, потому что я могу просто перетащить viewcontroller в построителе интерфейса и назначить его новому классу.

Итак, с раскадровкой, когда мне нужно будет использовать файл .xib / .nib?

Спасибо.

Ответы [ 4 ]

33 голосов
/ 14 декабря 2011

Раскадровки не полностью устраняют необходимость в файлах NIB.Один из распространенных примеров - создание подпредставлений для входа в UIScrollView.Вы не можете создавать подпредставления отдельно в раскадровке;вместо этого вам нужно создать отдельные NIB для подпредставлений и программно прикрепить их к представлению прокрутки.

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

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

11 голосов
/ 14 декабря 2011

Полагаю, раскадровка содержит файлы .xib / .nib для всех ваших просмотров.Это представляет отношения между ними и помогает вам избежать путаницы, если у вас много взглядов.Также это экономит ваше время и нервы при написании кода.

10 голосов
/ 20 декабря 2011

В последнее время я пробовал раскадровку, и у меня смешанные чувства по поводу ее использования:

Pro's

  • Удобство: вам, возможно, придется писать гораздо меньшекод.Так, например, вы можете показывать статическое представление без необходимости писать какой-либо код.
  • Обзор: вы можете быстро увидеть, как контроллеры ViewController связаны друг с другом
  • Эффективность: для простого использованияЯ считаю, что раскадровка намного эффективнее, чем «по-старому».

    Пример 1: Editor > Embed In > Navigation Controller и вуаля, больше не требуется создавать экземпляры и настраивать.

    Пример 2: Вы можете создать «Ячейки прототипа» для TableView, что ускоряет создание статических табличных представленийдраматически.AFAIK это невозможно с файлами перьев

  • Это круто: -)

Con's

  • Я считаю, что повторное использование так или иначе страдает от раскадровок.Хотя я могу переходить к данному ViewController из нескольких точек, он все еще ограничен, поскольку в одном случае я мог бы использовать VC в качестве Popover, а в другом - в качестве Master-ViewController.
  • Предполагая, что вы работаете вбольшая команда и разные люди меняют разные части вашего приложения, поскольку одна монолитная раскадровка, которую вы затем должны объединить, может стать большой проблемой для работы в команде.
  • Я действительно хотел бы иметь какой-то механизм для включенияили сослаться на существующие файлы пера в раскадровку, что в настоящее время невозможно.

Итак, учитывая эти моменты, я все же считаю раскадровку очень привлекательной, но имеет смысл объединить оба подхода, что на самом деле не имеет большого значения.Кроме того, эта технология все еще довольно новая, поэтому она может улучшиться в (ближайшем) будущем.

4 голосов
/ 14 декабря 2011

Если вы используете раскадровки, вам обычно не нужно создавать отдельные файлы .xib. Вы можете по-прежнему использовать файл .xib, если хотите - это может быть полезно, например. если у вас особенно сложное представление, которое вы хотите настроить самостоятельно. Однако в большинстве случаев в этом нет необходимости.

...