2016-07-12 54 views
10

ho questo storyboard:'Storyboard non contiene un controller di vista con identificativo' solo sul dispositivo

enter image description here

Con questo ViewController:

enter image description here

devo questo codice instanciate my VC:

let VC = UIStoryboard(name: "Main_iPhone", bundle: nil).instantiateViewControllerWithIdentifier("POIListViewController") 

Quando sono in esecuzione su un simulatore, tutto funziona.

Ma quando lancio il dispositivo vero e proprio, non ho questa eccezione:

2016-07-12 10:56:19.073 App-Ely[1935:562264] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'Storyboard (<UIStoryboard: 0x185481b0>) doesn't contain a view controller with identifier 'POIListViewController'' 
*** First throw call stack: 
(0x2a23b5f7 0x37aadc77 0x2dc36f25 0x182b8c 0x182dd0 0x12d99f 0x2a1f3f15 0x2a14ee4d 0x2ae83ec1 0x13e0d5 0x168a2d 0x2d7f9607 0x2d8ab0a7 0x2d75d1f1 0x2d6d8eff 0x2a202015 0x2a1ff6f9 0x2a1ffafb 0x2a14cb31 0x2a14c943 0x3152c051 0x2d7426f1 0x16fce3 0x38049aaf) 
libc++abi.dylib: terminating with uncaught exception of type NSException 

EDIT:

ho il mio storyboard caricato correttamente:

let storyboard = UIStoryboard(name: "Main_iPhone", bundle: nil) 
    // 'storyboardName' contains "Main_iPhone" 
    let storyboardName : String = storyboard.valueForKey("name") as! String 
    let VC = storyboard.instantiateViewControllerWithIdentifier("POIListViewController") 
+0

Puoi provare questo codice? se lascia vc: POIListViewController = storyboard? .standardreViewControllerWithIdentifier ("POIListViewController") come? POIListViewController { // Il tuo codice } –

+0

nop, è lo stesso –

+0

@Neo non funziona –

risposta

22
let storyboard = UIStoryboard(name: "Main_iPhone", bundle: nil) 
let vc = storyboard.instantiateViewControllerWithIdentifier("POIListViewController") as! UIViewController 

EDIT

Basta pulire il vostro progetto (CMD + SHIFT + K) come si deve modificare il nome storyboard credo.

+0

controlla che stai ricevendo oggetto storyboard o no. –

+0

Ho controllato con il tuo codice e ho lo storyboard nello storyboard var –

+0

che cosa stai ricevendo in vc? –

0

Prova a sostituirlo con:

let VC = self.storyboard!.instantiateViewControllerWithIdentifier("POIListViewController") as! POIListViewController 
+0

non funziona per me –

1

Chiudere il progetto e aprirlo di nuovo. Se hai notato che l'identificatore è sparito, allora deve essere un problema di auto-salvataggio. Basta salvare il file dello storyboard dopo aver inserito il nuovo identificativo. e Clean-Build-Run.

0

Ho avuto un problema simile (tranne che non era solo sul dispositivo).

Nessuno dei suggerimenti precedenti in questo thread ha funzionato per me. Ciò che funzionava andava all'Identity Inspector (nel pannello delle utility a destra), e assicurandosi che il campo ID Storyboard fosse anche popolato con il nome del View Controller (stesso nome del campo Class sopra).