Saya terus mendapatkan kesalahan berikut:
Storyboard (<UIStoryboard: 0x7ebdd20>) doesn't contain a view controller with identifier 'drivingDetails'
Ini kodenya:
- (void)tableView:(UITableView *)tableView
didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
UIViewController *controller = [self.storyboard instantiateViewControllerWithIdentifier:@"drivingDetails"];
controller.title = [[dao libraryItemAtIndex:indexPath.row] valueForKey:@"name"];
[self.navigationController pushViewController:controller animated:YES];
}
Saya sudah mengatur identifier
pada UIStoryboard
tapi saya masih mendapatkan kesalahan ini.
ios
objective-c
xcode
storyboard
Tikar
sumber
sumber
Jawaban:
Hanya untuk referensi di masa mendatang:
Saya sedang mengembangkan di iOS 6 menggunakan Storyboards.
Saya mengalami masalah yang sama, tetapi saya tidak dapat menemukan bidang "Identifier" di inspektur. Alih-alih, cukup setel bidang bernama "Storyboard ID" ke nama yang Anda beri nama Pengenal. Bidang ini dapat ditemukan di bawah tab "Tampilkan inspektur Identitas" di inspektur.
[Catatan - komentar di bawah ini menunjukkan bahwa beberapa orang telah menemukan bahwa mereka perlu (juga?) Mengatur bidang "ID Pemulihan" tepat di bawah ID Storyboard di inspektur. Mengklik "Gunakan Storyboard ID" sepertinya tidak cukup.]
Ada gambar di bawah ini untuk referensi: (dalam hal ini saya telah memberi nama pengidentifikasi saya sama dengan kelas saya)
sumber
Dalam Xcode 7 - 11 ,
ketika Anda mengubah ID storyboard dan Anda mendapatkan kesalahan seperti ini,
cukup BERSIHKAN proyek Anda ( CMD+ SHIFT+ K)
sumber
Tetap! Tidak hanya pengidentifikasi di segue harus ditetapkan, dalam kasus saya DrivingDetails, tetapi juga pengidentifikasi di tableViewController saya harus ditetapkan sebagai DrivingDetails ... periksa gambar saya:
Saya juga menghapus pengontrol tampilan navigasi jadi sekarang pengontrol tampilan 2 tabel terhubung langsung dengan animasi "push".
***** EDIT untuk XCODE 7.0 *****
Anda harus mengatur storyboardId (dalam hal ini viewController tertanam di pengontrol Navigasi:
sumber
[storyboard instantiateViewControllerWithIdentifier]
BUKAN instantiating tampilan dari Interface Builder di dalam view controller; tetapi di iOS6 memangcatatan:
"StoryboardFileName"
adalah nama file Storyboard dan bukan ID dari storyboard!"StoryboardID"
adalah ID yang Anda tetapkan secara manual di inspektur identitas untuk storyboard itu (lihat tangkapan layar di bawah).Terkadang orang percaya bahwa yang pertama adalah Storyboard ID dan yang kedua adalah nama kelas View Controller, jadi perhatikan perbedaannya.
sumber
.instantiateViewController(withIdentifier: "StoryboardID")
harus diubah namanya menjadi.instantiateStoryboard(withIdentifier: "StoryboardID")
Atau hanya sesuatu yang lebih sederhanaUIStoryboard(name: "StoryboardFileName", bundle: nil).init()
Identitas terletak di tab Identity Inspektur bernama Storyboard ID untuk Xcode 6.3.2 dan dicentang opsi Use Storyboard ID.
sumber
Baru saja mengalami masalah ini setelah menambahkan VC baru ke storyboard tetapi hanya pada perangkat, bukan pada simulator. Ternyata itu karena memiliki beberapa pelokalan storyboard - VC hanya ditambahkan ke yang utama. Saya mencoba menghapus pelokalan lain (salah satunya adalah yang iPhone saya gunakan) tetapi masih ada kesalahan. Pada akhirnya saya harus membuat ulang lokasi lain dengan VC baru di masing-masing.
sumber
Kompiler menunjukkan kesalahan berikut:
Di sini objek storyboard yang dibuat bukan storyboard utama yang berisi ViewControllers kami. Sebagai file storyboard tempat kami bekerja dinamai Main.storyboard . Jadi kita perlu memiliki referensi objek dari Main.storyboard .
Gunakan kode berikut untuk itu:
Berikut
storyboardWithName
adalah nama file storyboard yang sedang kami kerjakan danbundle
menentukan bundel di mana storyboard kami berada (yaitumainBundle
).sumber
Bagi mereka yang memiliki masalah yang sama dengan @Ravi Bhanushali, berikut adalah solusi Swift 4:
let storyboard = UIStoryboard(name: "Main", bundle: Bundle.main)
sumber
Saya menemukannya ... klik pada controller tampilan di storyboard, klik ikon ketiga dari kiri pada inspektur atribut vc - yang mana Anda mengatur nama panggilan pada layar yang tertulis 'identitas' - tambang disembunyikan, saya harus klik pada kata identitas lalu tampilkan storyboardID - tambahkan pengenal dari kode, selesai
sumber
Memodifikasi "Storyboard ID" di inspektur identitas (ikon ke-3 di sebelah kiri) akan berfungsi.
Jika tidak dan Anda yakin tidak ada kesalahan ketik, coba bersihkan proyek ("Produk" -> "Bersihkan", atau cukup perintah + shift + K).
sumber
Saat memasuki pengidentifikasi Anda belum memilih pengontrol tampilan yang tepat, cukup periksa sekali jika dilakukan, ulangi prosedur sekali lagi.
sumber
Beberapa pengontrol tampilan saya kehilangan atribut storyboardIdentifier .
Sebelum:
Setelah:
sumber
Saya mendapat kesalahan yang sama dan saya bisa memperbaikinya dengan mengubah perubahan berikut dalam proyek saya. Saya telah menyebutkan nama kelas saya di panel inspektur kemudian masalahnya terpecahkan. Goto-> panel kanan ada Identity Inspector Di bagian kelas kustom
class: nama kelas Anda (ViewController)
Di ID storyboard bagian Identitas: storyboard ID Anda (Nama viewController)
Setelah klik ini pada opsi Gunakan storyboard ID di sana. Itulah masalahnya selesai. Saya harap ini akan membantu Anda ....
sumber
Gunakan pengenal Anda (@ "drivingDetails") sebagai Storyboard ID.
sumber
sangat sederhana pilih controller tampilan masing-masing di papan cerita utama dan periksa storyboardID jika ada menggunakannya dalam pengidentifikasi memberikan nama dan menggunakannya.
di sini firstone saya adalah storyboardID biarkan vc = self.storyboard? .instantiateViewController (withIdentifier: "firstone") as! tabBarViewController
sumber
Saya mencoba semua solusi di atas dan tidak ada yang berhasil.
Apa yang saya lakukan adalah:
Dan kemudian berhasil. Hal yang mengejutkan adalah bahwa saya telah memasukkan ID Storyboar di pembangun antarmuka dan itu dihapus / dihapus setelah membuka Xcode lagi.
Semoga ini bisa membantu seseorang.
sumber
Membersihkan semua hal dan menutup Xcode tidak memecahkan masalah bagi saya.
Saya harus menghapus viewController dan membuat yang baru dengan pengenal baru.
sumber
Catatan: Jika Anda menggunakan cocoapods dalam proyek Anda, jalankan dulu
pod deintegrate
danrm Podfile.lock
Kemudian buka folder proyek Anda di editor kode pihak ketiga seperti VSCode dan lakukan pencarian global untuk nama ViewController yang melemparkan kesalahan.
Semuanya harus berfungsi dengan baik sekarang.
Ini paling sering disebabkan ketika Anda mengganti nama file dari dalam Xcode.
sumber
XCODE DRAG N PANEL DROP TELAH !!!
sumber