2015-01-27 6 views
11

Предположим, вы скопировали Main.storyboard из проекта Xcode 6 в автономную игровую площадку Ресурсы. Как вы можете создать экземпляр UIStoryboard с помощью файла Main.storyboard? Попытка использовать по умолчанию не работает через nil:Как создать экземпляр раскадровки из файла на игровой площадке iOS?

let storyboard = UIStoryboard(name: "Main", bundle: nil) 

также не явно с помощью основного пучка:

let storyboard = UIStoryboard(name: "Main", bundle: NSBundle.mainBundle()) 

Даже если площадка является частью проекта Xcode раскадровки, я получить те же Ошибка: «Не удалось найти раскадровку с именем« main »в пакете NSBundle ...»

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

ответ

10

Я нашел это:

«Вы можете бросить файл XIb в ваши ресурсы, но площадка не может прочитать или запустить его, потому что это не в обобщенной форме Сегодня я (finallly!) Мысль об использовании ibtool. чтобы предварительно скомпилировать файл MainMenu.xib в nib и загрузить его. Когда вы устанавливаете инструменты командной строки Xcode, ibtool добавляется в/usr/bin. Таким образом, все, что вам нужно сделать для компиляции вашего nib, выдает следующую команду:

ibtool --compile MainMenu.nib MainMenu.xib

Throw, что в результате перо в папку ресурсов вашей площадки и года вы готовы его загрузить ».

в http://ericasadun.com/2015/03/25/swift-todays-wow-moment-adding-menus-to-playgrounds/

Вашей раскадровка будет составлена ​​в нескольких наконечников (по одному на сцену)

Надеется, что это помогает

2

Подобного @ybakos ответа, но для доступа рамки с видеоредактора вы хотите для загрузки (тогда и игровая площадка, и ваше приложение могут использовать одну и ту же раскадровку напрямую):

Если у вас есть Раскадровка в каркасе, который был скомпилирован для симулятора, а также встроен в рабочий проект, который к тому же живет в рабочем пространстве, вы будете иметь возможность загружать рамки в детской площадки в той же рабочей области с помощью рамочного пучка, например, так:

let frameworkBundle = Bundle(identifier: "com.kigisoft.KGWeatherMap") 
let storyboard = UIStoryboard(name: "WeatherMap", bundle: frameworkBundle) 

Вы можете скачать образец проекта «StoryboardPlay» от этого Dropbox ссылка:

Playground Example Projects