Objective c 在包含主视图数据的子视图上加载数组

Objective c 在包含主视图数据的子视图上加载数组,objective-c,ios,ios4,xcode4,Objective C,Ios,Ios4,Xcode4,我的应用程序有两个视图。主视图允许输入产品的详细信息,并将其存储到第二个视图中的阵列中。每当我切换到第二个视图时,所有产品详细信息都应该加载到表视图中 问题是,每当我尝试将产品添加到阵列时,它都会保存数据,但会替换以前的数据。因此,所有时间数组只存储一个产品信息。我假设每次添加产品时都会初始化数组。这是密码 - (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil { self

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

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

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

    self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
    if (self) {
        // Custom initialization
        productArray =[[NSMutableArray alloc] init];
    }
    return self;
}
我尝试在viewDidLoad方法和许多其他地方分配数组,但没有任何帮助

请帮忙


谢谢

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

  • 如果要将对象添加到数组中,应将数组设置为
    NSMutableArray
    ,并对其调用
    addObject
    方法,以便数组现在包含新对象
  • 如果要将阵列从主视图传递到第二个视图,应在segue设置中执行此操作。基本上,您在第二个视图中有一个
    @property
    ,在主视图中的
    performsgue
    方法中,您可以将
    @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中,您只实例化了数组,但似乎没有将数据传递给它?

    @iBlue。。谢谢你的快速回复。我正在使用带有addObject方法的NSMutable数组。你能提供一个使用Segue的示例代码吗。顺便说一下,我没有使用故事板。它是一个具有附加ViewController和xib文件的单视图应用程序。