私は iOS 開発の初心者で、ここや Google で解決策を見つけることができなかったので、必死になって質問しています。
UIViewController のサブクラスであるクラス「ViewController」があります。ここには、次のものがあります。
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
if ([self.bookTitle.text length] > 0)
self.entries = [self.bookLibrary searchForBook:self.bookTitle.text];
if ([segue.identifier isEqualToString: @"BookList"]) {
TableViewController *controller = (TableViewController *)segue.destinationViewController;
controller.itemCounter = [self.entries count];
controller.bookLibrary = [self.entries allValues];
}
}
ストーリーボード上のこのビューには、グリッドにドラッグ アンド ドロップした Table View Controller への接続があります。下部にある [Table View Controller] をクリックし、カスタム クラスの入力ボックスにカスタム クラスの [TableViewController] を設定しました。
さて、私が理解していることから、上記の方法はすべてのデータを適切に TableViewController に渡しています。
これは、TableViewController にあるメソッドの 1 つです。
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *simpleTableIdentifier = @"BookCell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:simpleTableIdentifier];
if (cell == nil) {
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:simpleTableIdentifier];
}
Book* book = [self.bookLibrary objectAtIndex:indexPath.row];
cell.textLabel.text = book.title;
NSLog(@"%@", book.title);
return cell;
}
NSLog エントリはすべての本のタイトルをコンソールに出力しているので、データが渡されていることがわかります。しかし、プログラムを実行し、ボタンをクリックしてテーブル ビューを表示すると、それは単なる空のテーブルです。ヒントはありますか?プロジェクト全体をアップロードできます。これに数時間いて、少しイライラしました。助けてください :(
編集:応答は、テーブル メソッドでデータ変数の状態を確認することを提案しました。それらの状態は私が思っているものではなく、NSLog を使用して値を出力する必要があることを示唆しています。まさにそれを行い、すべての値が出力されているのを見ることができます。わかりません...実際、値が割り当てられています。問題は、データが欠落していることではありません。