私はアプリストア用の最初のアプリに取り組んでいます。以前にプログラミングを行ったことがありますが、これは私の最初の iOS アプリです。
私の問題には少し説明が必要です。テーブルビューに基づいてこのアプリを入手しました。メイン画面(画面A)、項目追加画面(画面B)、詳細画面(画面C)、最後に詳細項目追加画面(画面D)で構成されています。
私のすべての画面は、画面 A からセグエします。画面 A は、オブジェクトを含む配列で構成されています。各オブジェクトは詳細の配列を保持します。画面 A で行/オブジェクトをタッチすると、画面 C に移動し、指定された行/オブジェクトのすべての詳細を確認できます。
画面 A と画面 B の間でデリゲートを動かしました。
しかし、頭痛の種は、画面 A の特定のオブジェクトに詳細を追加したいときです。画面 A のオブジェクトに詳細オブジェクトを追加できるようにしたいのですが、既に配列にあるオブジェクト配列にアクセスするにはどうすればよいですか? ?
- (void)addBudgetViewController:(AddBudgetViewController *)controller didFinishAddingItem:(Budgets *)budget
{
int newRowIndex = [self.dataModel.budgetsList count];
[self.dataModel.budgetsList addObject:budget];
NSLog(@"Budget added");
NSIndexPath *indexPath = [NSIndexPath indexPathForRow:newRowIndex inSection:0];
NSArray *indexPaths = [NSArray arrayWithObject:indexPath];
[self.tableView insertRowsAtIndexPaths:indexPaths withRowAnimation:UITableViewRowAnimationAutomatic];
[self dismissViewControllerAnimated:YES completion:nil];
}
画面 B から画面 A にアイテムを追加する方法を次に示します。私の BudgetsInList は、画面 A の予算の変更可能な配列です。しかし、budgetsInList 配列のオブジェクト配列にアイテムを追加したい場合、コードはどのように見えるでしょうか?
配列 A は、画面 A に表示される予算のリストです。配列 B は、配列 A 内の配列です (これも変更可能です)。画面 B と D は、画面 A に予算を追加し、画面 C にアイテムを追加します。
- (void)addItemViewController:(AddItemViewController *)controller didFinishAddingItem:(Item *)item
{
int newRowIndex = [self.budgets.items count];
[[self.dataModel.budgetsList objectAtIndex:newRowIndex] addObject:item];
NSLog(@"Item with name %@ added", item.name);
NSIndexPath *indexPath = [NSIndexPath indexPathForRow:newRowIndex inSection:0];
NSArray *indexPaths = [NSArray arrayWithObject:indexPath];
[self.tableView insertRowsAtIndexPaths:indexPaths withRowAnimation:UITableViewRowAnimationAutomatic];
[self dismissViewControllerAnimated:YES completion:nil];
}
これが私が試みていることですが、アイテムオブジェクトを予算配列であるbudgetsList配列に追加しているため、これは機能しません。私が欲しいのは、項目オブジェクトを項目配列 (配列 B) に追加することです。しかし、どうすればそれを行うことができますか?
これがいくつかの写真に役立つことを願っています。:-)
よろしくお願いします アンダース・H・オプストラップ