0

私のアプリケーションには2つのビューがあります。メインビューでは、製品の詳細を入力し、2番目のビューの配列に保存できます。セカンドビューに切り替えるときはいつでも、すべての製品の詳細をテーブルビューにロードする必要があります。

問題は、製品を配列に追加しようとすると、データは保存されますが、以前のデータが置き換えられることです。したがって、すべての時間配列は1つの製品情報のみで保存されます。製品を追加するたびに配列が初期化されると思います。これがコードです、

- (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. メインビューからセグエビューに配列を渡したい場合は、セグエの設定で行う必要があります。基本的@propertyに、2番目のビューにはがありperformSegue、メインビューのメソッドでは、@property任意の配列に設定します。

ストーリーボードなしでセグエを使用することはできません(少なくとも私には方法がわかりません)。したがって、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 に答える