0

我的应用程序有两个视图。主视图允许在第二个视图中输入产品的详细信息并存储到数组中。每当我切换到第二个视图时,所有产品详细信息都应加载到表格视图中。

问题是每当我尝试将产品添加到数组中时,它都会保存数据但会替换以前的数据。所以所有时间数组都只存储一个产品信息。我假设每次添加产品时数组都会被初始化。这是代码,

- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
  {

    self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
    if (self) {
        // Custom initialization
        productArray =[[NSMutableArray alloc] init];
    }
    return self;
}

我试图在 viewDidLoad 方法和许多其他地方分配数组,但没有任何帮助。

请帮忙。

谢谢

4

1 回答 1

1

我不确定我是否理解你的问题,但是:

  1. 如果要将对象添加到数组中,则应将数组设置为NSMutableArray并对其调用addObject方法,以便数组现在包含您的新对象。
  2. 如果要将数组从主视图传递到第二个视图,则应在 segue 设置中进行。基本上,您@property在第二个视图中有一个,performSegue在主视图的方法中,您将其设置@property为您希望的任何数组。

如果没有情节提要,您将无法使用 segue(至少我不知道如何使用)。所以如果你想使用xib,你需要用传统的方式来做:

SomeViewController *viewController = [[SomeViewController alloc] initWithNibName:@"nib" bundle:nil];;
viewController.array = self.array;  // the array you want to pass to your new view

所以在你的 alloc-init 事情中,你只实例化了你的数组,但你似乎没有将数据传递给它?

于 2012-08-01T15:36:53.423 回答