"Раскадровка не содержит контроллера вида с идентификатором" только на устройстве

У меня есть эта раскадровка:

введите описание изображения здесь

С помощью этого ViewController:

введите описание изображения здесь

У меня есть этот код, чтобы стимулировать мой VC:

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

Когда я запускаю симулятор, все работает.

Но когда я запускаю на реальном устройстве, у меня есть это исключение:

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

ИЗМЕНИТЬ:

У меня правильно загружена раскадровка:

    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")

Ответ 1

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

ИЗМЕНИТЬ

Просто очистите свой проект (CMD + SHIFT + K), поскольку вы меняете имя раскадровки, я думаю.

Ответ 2

Закройте свой проект и откройте его снова. Если вы заметили, что идентификатор ушел, значит, это проблема автоматической экономии. Просто сохраните свой файл раскадровки после ввода нового идентификатора. и Clean-Build-Run.

Ответ 3

Попробуйте изменить его на:

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

Ответ 4

У меня была аналогичная проблема (за исключением того, что это было не только на устройстве).

Ни один из предыдущих предложений в этой теме не работал у меня. Что работало в Identity Inspector (в правой панели "Утилиты" ), и убедитесь, что поле идентификатора Storyboard также заполнено именем View Controller (то же имя, что и поле Class над ним).