2015-01-27 21 views
11

Załóżmy, że skopiowałeś plik główny Main.storyboard z projektu Xcode 6 do samodzielnego katalogu placów zabaw Resources. W jaki sposób można utworzyć instancję UIStoryboard przy użyciu pliku Main.storyboard? Próbuje użyć domyślnego poprzez nil nie działa:Jak utworzyć instancję Storyboard z pliku na placu zabaw w systemie iOS?

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

Nie ma jednoznacznie za pomocą głównego zestawie:

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

Nawet jeśli plac zabaw jest częścią projektu Xcode serii ujęć, w I otrzymane takie same error: "Nie można znaleźć storyboardu o nazwie" main "w pakiecie NSBundle ..."

Wydaje się, że ścieżka pakietu jest poprawna i powinna mieć możliwość deserializacji pliku scenorysu.

Odpowiedz

10

Znalazłem to:

„Można rzucać plik XIb do swoich zasobów, ale plac zabaw nie może go odczytać lub uruchomić go, ponieważ nie jest w postaci skompilowanej Dzisiaj (finallly!) Myśl korzystania ibtool. aby wstępnie skompilować mój plik MainMenu.xib do stalówki, a następnie załadować go.Po zainstalowaniu narzędzi wiersza poleceń Xcode, ibtool zostanie dodany do/usr/bin.Więc wszystko, co musisz zrobić, aby skompilować stalówkę, wydać następujące polecenie:

ibtool --compile MainMenu.nib MainMenu.xib

Rzut wynikający stalówkę w folderze zasobów Twojego Playground i yo jesteś gotowy do załadowania go. "

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

Twój storyboard zostaną skompilowane na wiele stalówki (jeden na scenie)

Nadzieja pomaga

2

podobne do @ybakos odpowiedź, ale dostępu do ramy z ujęć chcesz ładowanie (wtedy zarówno plac zabaw, jak i aplikacja mogą bezpośrednio korzystać z tego samego scenariusza):

Jeśli masz scenorys w ramie, która została skompilowana dla symulatora i jest również osadzona w projekt, który ponadto mieszka w obszarze roboczym pracy, będzie w stanie załadować ramy na placu zabaw w tym samym obszarze roboczym za pomocą wiązki ramowej, tak jak poniżej:

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

Możesz pobrać przykładowy projekt „StoryboardPlay” z tego Link do skrzynki odbiorczej:

Playground Example Projects

Powiązane problemy