2015-07-28 14 views
5

Sto creando una libreria con Cocoapods e Swift 1.2. Ho uno storyboard che devo caricare nella mia libreria. Anche se, io sono sempre ottenendo questo stesso errore:Caricamento di uno storyboard da un framework

Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'Could not find a storyboard named 'Main' in bundle`.

Quello che ho cercato:

  • mettere il mio storyboard all'interno della cartella Classes
  • mettere il mio storyboard all'interno della cartella Assets
  • eliminare il mio applicazione dal dispositivo, pulire il progetto e ricostruire.
  • Usa UIStoryboard(name:"Main", bundle:nil)
  • Usa UIStoryboard(name:"Main", bundle:NSBundle(forClass:self))
  • Usa UIStoryboard(name:"Main", identifier:myIdentifier)

sono stato anche in grado di caricare lo storyboard dal mio progetto di esempio, mettere poi sono stato in grado di creare un'istanza del controller della vista iniziale solo.

Provare a richiamare storyboard!.instantiateViewControllerWithIdentifier(someIdentifier) dal controller di visualizzazione iniziale ha comportato sempre il mancato controllo del controller di visualizzazione, sebbene sia possibile vedere chiaramente che esiste un controller di visualizzazione con quell'identificatore. Come posso risolvere questo problema?

+0

'NSBundle (forClass: self)' ... è 'self' una classe nello stesso pacchetto dello storyboard? – nhgrif

+0

@nhgrif Sì, lo è. Il file storyboard e la classe si trovano nella stessa cartella. – user26830

+0

Lo storyboard è stato aggiunto all'obiettivo? Puoi verificarlo nella finestra di ispezione File (nella barra laterale destra). – Glorfindel

risposta

2

Trovato il problema. Semplicemente sciocco ma dopo aver cancellato Main.storyboard dal progetto, non l'ho rimosso dalle impostazioni del progetto. Cercando di caricarlo come controller di visualizzazione iniziale. Dopo aver modificato le impostazioni, UIStoryboard(name:"Main", bundle:NSBundle(forClass:self) funziona correttamente.