2016-02-19 26 views
9

CocoaPods kullanarak bir Pod oluşturmaya çalışıyorum ve örnek uygulamadan Main Storyboard'dan referans alabileceğim bir "Demo" Storyboard'u paketlemek istiyorum.Xcode, Cocoapods kullanarak Storyboard'u bulamıyor

Did not find storyboard named "Demo" referenced from Main.storyboard

Bkz: Benim Podspec yılında

enter image description here

enter image description here

, ben dahil: Ben bunu sorun Xcode bana aşağıdaki derleyici hata veriyor olmasıdır

s.resource_bundles = { 
    'StoryboardAssets' => ['Pod/Assets/*.{storyboard,png}'] 
} 

Sen "Using Pod Lib Create" rehber kullanılarak oluşturulan demo depo bulabilirsiniz, buradan bulabilirsiniz: Ben CocoaPods sürüm 0.39.0 koşuyorum

https://github.com/Kukiwon/StoryboardDemo

.

Peki, bir Storyboard'u Pod'ınızdan göndermenin doğru yolu ne olurdu? Bir şey mi eksik? Dosyalar Dinamik Framework dahil

cevap

2

uygulamada farklı NSBundle yerleştirilmiştir. daha kolay film şeridi elde etmek yapmak için, kütüphanenizde içinde bir yardımcı sınıf oluşturabilirsiniz:

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 demetinin elde edilmesi olacaktır.

Bu şekilde, yalnızca kullanıcı tarafından yerleştirilmiş film şeridinin kök görünümü denetleyicisi göstermek için aşağıdakileri yapmanız gerekir:

func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool { 

    window?.rootViewController = StoryboardHelper.helper.rootController() 
    window?.makeKeyAndVisible() 

    return true 
} 
+1

Teşekkürler, ancak GitHub'daki demo uygulamasına bakarak, bu benim projem için de geçerli olur mu? Örneğinizde, Pod'daki "Ana" storyboard'u başlatıyorsunuz, ancak "Ana" Storyboard'umdan "Demo" film şeridine başvurmak istiyorum. Ayrıca, bu sadece Storyboards (iOS9 Storyboard referansları ile) kullanılarak yapılabilir eğer merak ediyorum. Sence mümkün mü? – Kukiwon

5

Demet bölümünde belirlesin, cocoapods kullanarak film şeridi başvurmak için, paket res olarak

enter image description here

Ve podspec dosyasında

, kendi film şeridinin başvuru eklemek gerekir (: aşağıdaki resim gibi bölmesinin tanımlayıcı aynak ve

s.resource = 'MyPod/MyStoryboardName.storyboard'

Güncelle) pod'unu paketlemez ve github bir örnek yükleyebilirsiniz isterseniz tüm eserleri iyi olacak.

Bu yardımcı olur umarım

+1

Bu benim için çalıştı! Bazı sebeplerden dolayı s.resource_bundles altındaki storyboard yeterince iyi değildi. Ama s.resource ekledikten sonra çalıştı! –

İlgili konular