2016-07-12 14 views
10

Ich habe dieses Drehbuch:'Storyboard keinen View-Controller mit der Kennung enthält' nur auf Geräte

enter image description here

Mit diesem Viewcontroller:

enter image description here

Ich habe diesen Code zu instanciate mein VC:

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

Wenn ich im Simulator laufe, funktioniert alles.

Aber wenn ich auf reales Gerät zu starten, habe ich diese Ausnahme:

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:

Ich habe mein Drehbuch richtig geladen:

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

Können Sie diesen Code versuchen? Wenn vc: POIListViewController = Storyboard? .instantiateViewControllerWithIdentifier ("POIListViewController") als? POIListViewController { // Ihr Code } –

+0

Nein, es ist das gleiche –

+0

@Neo funktioniert nicht –

Antwort

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

EDIT

nur sauber Ihr Projekt (CMD + SHIFT + K), wie Sie den Storyboard Namen, den ich denke, ändern.

+0

überprüfen Sie bekommen Storyboard Objekt oder nicht. –

+0

Ich habe mit Ihrem Code überprüfen, und ich habe das Storyboard in var Storyboard –

+0

Was bekommen Sie in Vc? –

0

Versuchen Sie, ändern Sie es zu:

+0

funktioniert nicht für mich –

1

Schließen Sie Ihr Projekt und öffnen Sie es erneut. Wenn Sie bemerkt haben, dass der Bezeichner weg ist, muss es ein Problem beim automatischen Speichern sein. Speichern Sie einfach Ihre Storyboard-Datei, nachdem Sie Ihre neue ID eingegeben haben. und Clean-Build-Run.

0

Ich hatte ein ähnliches Problem (außer es war nicht nur auf dem Gerät).

Keiner der vorherigen Vorschläge in diesem Thread funktionierte für mich. Was funktionierte, ging zum Identity Inspector (im rechten Teil des Utilities-Bereichs) und stellte sicher, dass das Storyboard-ID-Feld auch mit dem View-Controller-Namen (derselbe Name wie das darüber liegende Klassenfeld) gefüllt war.