会社のブログログイン登録スタック・オーバーフローはプログラマーとプログラミングに熱心な人のためのQ&Aサイトです。679件0現在XibでUIViewを一つ置き、そのUIViewの中にUITableViewを置いてます。コードは以下のように書きました。cell;}@end以上を実行すると、中身のないテーブルビューが表示されます。tableview.delegateとtableview.dataSourceはStoryboardで設定しており、それぞれUIViewを継承した「CategoriesView」に紐付けています。試しにログを取ってみると、initWithFrameを通った時にはcategoriesArrayにきちんと全ての値が入っていたのですが、numberOfRowsInSectionの中を通る時にはcategoriesArrayはnilになっていました。これがいけないのだと思うのですが、なぜcategoriesArrayがnilになってしまうのでしょうか?XibでUITableViewを扱う時には何か他にしなければならないことがあるのでしょうか?どなたか解決できる方がいれば教えていただきたいです。8:51はい、プロトコルは宣言してあります。(投稿順)1CategoriesViewインスタンスを2回生成するプログラムになってますね。initWithFrame:self.view.bounds];ここで、コードから生成。loadFromNib]で、XIBから生成して2回目。self.viewがaddSubview:しているのは、無名のCategoriesViewインスタンスであって、categoriesViewでないということになっています。これが不具合の原因というわけではありませんが、無意味なことをしている点は、指摘しておかなければいけません。それで、不具合の原因は、こちらです。InterfaceBuilder、Storyboardから生成したオブジェクトは、initで始まるイニシアライザを実行しません。初期化処理はすべてXIBファイル、.storyboardファイルに記述されています。categoriesArrayを生成する処理は行われず、この配列インスタンスはnilになります。XIB、.storyboardに書かれていない初期化処理をするときは、awakeFromNibメソッドないしinitWithCoder:メソッドに実装します。改善案を載せておきます。この行は不用かもしれません。個の銅バッジ2ご回答ありがとうございます。loadFromNibをすると余分なCategoriesViewが生成されてしまっているのですね。ご指摘の通りawakeFromNibを一度使ってみます。誠にありがとうございました。|この質問に回答するには、ログインする必要があります。求めていた回答ではありませんか?iosobjective-cxcodestoryboardxibのタグが付いた他の質問を参照する。質問のフィードこのRSSフィードを購読するには、このURLをコピーしてRSSリーダーに貼り付けてください。従って情報を開示できることに同意したことになります。選択した項目のみ受け入れる。