2016-04-12 15 views
0

Ist es möglich, eine Anwendung zu erstellen, die ihre ursprüngliche Ansicht aus einem Storyboard in einem Framework lädt?Initiale Ansicht von Framework laden

Sagen wir, ich habe ein Framework mit dem Titel MyCoolFramework. Dieses Framework hat ein Storyboard namens Home.storyboard, das die erste Ansicht einer Anwendung darstellt.

Gibt es eine Möglichkeit, es beim Start in die Anwendung zu laden? Mein AppDelegate sieht wie folgt aus:

import UIKit 
import MyCoolFramework 

@UIApplicationMain 
class AppDelegate: UIResponder, UIApplicationDelegate { 

    var window: UIWindow? 


    func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool { 
     self.window = UIWindow(frame: UIScreen.mainScreen().bounds) 
     let bundle = NSBundle(identifier: "com.myprojects.MyCoolFramework") 
     let homeStoryboard = UIStoryboard(name: "Home", bundle: bundle) 

     let initialView = homeStoryboard.instantiateInitialViewController() 

     self.window?.rootViewController = initialView 
     self.window?.makeKeyAndVisible() 

     return true 
    } 
} 

Es scheint, dass die Anwendung an diesem Punkt in der Anwendung keinen Zugriff auf den Rahmen oder ihren Inhalt handeln. Wer kennt den richtigen Weg? Dies ist die begleitende Test-App für ein Framework, das ich gerade entwickle.

I haben löschte die main storyboard Direktive in der info.plist

Antwort

1

denke ich, seine wahrscheinlich der Pfad zu Ihrem Rahmen zu sein, ist nicht korrekt. Sie können versuchen, diese (sorry Objective-C Ich bin sicher, dass Sie Swift umwandeln können)

[NSBundle bundleForClass: ein Name Ihrer Klasse im Rahmen]

Oder wenn das nicht funktioniert, fügt eine Methode für Ihr Framework, die den Pfad ihres eigenen Pakets und den obigen Code als Implementierung dieser Methode zurückgibt.

NSBundle: mainBundle und NSBundle: bundleForClass gibt verschiedene Pfade zurück, wenn sie innerhalb eines Frameworks aufgerufen werden (wenn sie jedoch aus einer Bibliothek aufgerufen werden, sind sie identisch). Experimentiere so lange, bis du den richtigen Pfad für dein Storyboard gefunden hast.

Verwandte Themen