コレクションビューを使ってyoutubeのタイムラインのようなレイアウトを作成しようとしたところ、
エラー文 libc++abi.dylib: terminating with uncaught exception of type NSException
が出てしまいました。
ストーリーボードは使わず、コードだけの実装を目指しています。
この動画を丸々真似ていました。
参考動画
差し支えなければこのエラーへの対処方法を教えていただきたいです。
よろしくお願いいたします。
発生している問題・エラーメッセージ
*** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: '-[UICollectionViewController loadView] instantiated view controller with identifier "UIViewController-BYZ-38-t0r" from storyboard "Main", but didn't get a UICollectionView.' *** First throw call stack:
手を加えたソースコード
AppDelegate
1@UIApplicationMain 2class AppDelegate: UIResponder, UIApplicationDelegate { 3 4 var window: UIWindow? 5 6 func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool { 7 8 window = UIWindow(frame: UIScreen.main.bounds) 9 window?.makeKeyAndVisible() 10 11 let layout = UICollectionViewFlowLayout() 12 window?.rootViewController = UINavigationController(rootViewController: HomeController(collectionViewLayout: layout)) 13 return true 14 }
ViewController
1class HomeController: UICollectionViewController, UICollectionViewDelegateFlowLayout { 2 3 4 override func viewDidLoad() { 5 super.viewDidLoad() 6 7 navigationItem.title = "Home" 8 collectionView?.backgroundColor = UIColor.white 9 collectionView?.register(UICollectionViewCell.self, forCellWithReuseIdentifier: "cellId") 10 } 11 12 override func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int { 13 return 5 14 } 15 16 override func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell { 17 let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "cellId", for: indexPath) 18 cell.backgroundColor = UIColor.blue 19 return cell 20 } 21 22 func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAt indexPath: IndexPath) -> CGSize { 23 return CGSize(width: view.frame.width, height: 200) 24 } 25}
試したこと
おそらくこの質問の応用なんだろうなと思っています。
ただ、僕の場合の解消方法がわからなかったため、質問させていただきました。
参考リンク
ストーリーボードのViewControllerのクラスはHomeControllerになっています。
紐付けが問題ではないと思います。
補足情報
Xcode Version 11.1
Swift 5.1
UIKitを使っています
長文失礼いたしました。
私ごとで大変恐縮ですが、ご協力していただける方がいればよろしくお願いいたします。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/11/26 15:35