Xcode не может найти ссылочную раскадровку, используя Cocoapods
Я пытаюсь создать Pod с помощью CocoaPods, и я хочу связать "Demo" Storyboard, на который я могу ссылаться из Main Storyboard из моего примера приложения. Проблема в том, что Xcode дает мне следующую ошибку компилятора, когда я это делаю:
Did not find storyboard named "Demo" referenced from Main.storyboard
Смотрите:
![введите описание изображения здесь]()
![введите описание изображения здесь]()
В моем Podspec я включил:
s.resource_bundles = {
'StoryboardAssets' => ['Pod/Assets/*.{storyboard,png}']
}
Вы можете найти демонстрационный репозиторий, который я создал с помощью руководства Using Pod Lib Create", вы можете найти его здесь:
https://github.com/Kukiwon/StoryboardDemo
Я запускаю CocoaPods версии 0.39.0.
Итак, каков был бы правильный способ ссылаться на раскадровку с вашего Pod? Я что-то пропустил?
Ответы
Ответ 1
Чтобы сослаться на раскадровку с помощью cocoapods, вы должны установить в разделе Bundle идентификатор пакета pod, как на картинке ниже:
![enter image description here]()
И в вашем файле psspec вы должны добавить ссылку на раскадровку (как ресурс, а не как пакет)
s.resource = 'MyPod/MyStoryboardName.storyboard'
После обновления модуля все будет работать как положено
надеюсь, это поможет
Ответ 2
Файлы, включенные в динамическую структуру, внедряются в другое NSBundle
в приложении. Чтобы облегчить получение раскадровки, вы можете создать вспомогательный класс внутри вашей библиотеки:
public class StoryboardHelper: NSObject {
public static let helper = StoryboardHelper()
public lazy var storyboard: UIStoryboard! = UIStoryboard(name: "Main", bundle: NSBundle(forClass: StoryboardHelper.self))
public func rootController() -> UIViewController! {
return storyboard.instantiateInitialViewController()
}
}
NSBundle(forClass: StoryboardHelper.self)
получит пучок StoryboardHelper
.
Таким образом, ваш пользователь должен сделать следующее, чтобы показать контроллер корневого представления встроенной раскадровки:
func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
window?.rootViewController = StoryboardHelper.helper.rootController()
window?.makeKeyAndVisible()
return true
}