我正在为应用商店开发我的第一个应用。我以前做过编程,但这是我的第一个 iOS 应用程序。
我的问题需要解释一下:我得到了这个基于 tableviews 的应用程序。它由以下部分组成:我的主屏幕(屏幕 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·奥普斯特鲁普