Извлечение nibs / xibs из раскадровок (iOS) - PullRequest
18 голосов
/ 27 октября 2011

Я создал простой проект с раскадровкой и теперь понимаю, что они не поддерживают iOS 4.x, и я хотел бы, чтобы пользователи с этих устройств могли загружать мое приложение.Приложение представляет собой простой контроллер представления, и оно довольно простое, но если есть способ просто извлечь XIB из раскадровки, я бы предпочел сделать это, чем воссоздать его.

tl; dr: get.xibs из .storyboard?

Ответы [ 5 ]

20 голосов
/ 08 мая 2012

Xib-файлы не могут быть извлечены из раскадровки, но вы можете создать экземпляр UIViewController из раскадровки, создав свою раскадровку в объект UIStoryboard и получив UIViewController через его идентификатор, вот как я это делаю:

    UIStoryboard *storyboard = [UIStoryboard storyboardWithName:
                            @"MainStoryboard_iPhone" bundle:[NSBundle mainBundle]];

    UIViewController *myController = [storyboard instantiateViewControllerWithIdentifier:@"myId"];

надеюсь, это поможет.

11 голосов
/ 27 октября 2011

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

Однако, для всех, кто это делает, учтите, что вы должны сделать xib для MainWindow в дополнение ко всем другим вашим XIB и подключить его соответствующим образом, включая настройку окна и делегата приложения , Раскадровки обрабатывают все это для вас, поэтому, когда вы пытаетесь избежать их, у вас есть много ручной настройки, которая создает проекты без раскадровок из дескрипторов get-go. Не делайте того, что я сделал, и попытайтесь сделать ваш корневой контроллер вашим главным контроллером представления, потому что он сходит с ума, говоря о том, что UIApplication не совместим по значению ключа для отдельных свойств вашей XIB.

4 голосов
/ 28 января 2015

Как предложили несколько других, лучше всего клонировать представления из раскадровки в XIB.

enter image description here

1 голос
/ 27 октября 2011

Возможно, вы не сможете извлечь .xibs из раскадровки, но попробуйте это.Откройте проект на основе .xib и создайте пустые файлы .xib для своих представлений, а также одновременно откройте проект раскадровки.Выберите все элементы пользовательского интерфейса в сцене раскадровки и просто перетащите их в проект на основе .xib.Я сделал это наоборот (переход от .xib к раскадровке) без проблем.

1 голос
/ 27 октября 2011

Невозможно получить файлы XIB.Ваша раскадровка компилируется в файлы пера и упаковывается в файл storyboardc в комплекте вашего приложения.

Чтобы найти файлы пера, выберите свой встроенный исполняемый файл в Finder и щелкните правой кнопкой мыши «Показать содержимое пакета».Перейдите в каталог en.lproj и найдите файл storyboard.storyboardc.Снова щелкните правой кнопкой мыши «Показать содержимое пакета» в файле раскадровки, и вы найдете свои кончики.Они вам не очень пригодятся, потому что они представляют собой скомпилированные двоичные кончики.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...