2011-08-10 13 views
0

私はスライダを使って人のセクションを作ることができるテーブルビューを持っています。したがって、各セクションには任意の数の人を含めることができます。私は、そのテーブルビューの状態を保存し、戻ってくるときにそれをリロードしたい。テーブルビューの状態の保存とロード

私はコアデータを使用しているので、私は各人に行とセクションの属性を与えることができると思いました。だから、私はそれを保存することができますが、私はそれらが再表示されると、テーブルビューを埋めるために値を使用する最良の方法を知らない。

NSUserDefaultsは、セクションに分割することができるグループがたくさんあるので、私は一番うまくいくとは思っていません。私は数日間これを行う最善の方法に苦労してきましたが、私はまだどのように行くべきかは分かりません。

続きを(mihirのメータあたり):

// Set core data values 
    int sec = 0; 
    int row = 0; 
    for (NSArray *section in groupsArray) { 
     for (People *person in section) { 
      [person setSubgroupSection:[NSNumber numberWithInt:sec]]; 
      [person setSubgroupRow:[NSNumber numberWithInt:row]]; 
      row++; 
     } 
     sec++; 
     row = 0; // new section so restart the row count 
    } 
+0

データを保存するコード... –

+0

データを保存するコードを追加しました。 – tazboy

答えて

2

すでにCoreDataに精通している場合は、あなたが説明している計画に固執する必要があります。私はそれを見て、あなたはTableViewInfoManagedObject:NSManagedObjectのようなものを作るべきです。このTableViewInfoManagedObjectには、テーブルビューが機能するために必要なものを記述する、たとえば@dynamic numberOfSectionsのようなメンバーが必要です。

あなたが人々を管理するためにCoreDataを使用している場合は、すでにnumberOfSectionsnumberOfGroupsにまたはものは何でも持っているあなたのPeople:NSManagedObject中をマッピングするために関係を使用することを検討してください。

また、スライダによって完全に決定されたような状態を「保存」する適切な時期も考慮する必要があります。その場合、valueChangedにIBActionを実装することができます。

EDIT 0:ループの最後に表示されたスニペットに基づいて、必要な情報が得られます。 secの最終的な値は、UITableViewDataSourceデリゲートメソッド-(NSInteger)numberOfSectionsInTableView:(UITableView *)tableViewに対応する必要があります。NSSortDescriptorによって実行する必要がある並べ替え順序を達成しようとしていない限り、Peopleオブジェクトの行番号を設定する理由がわかりません。したがってtableView:numberOfRowsInSection[[peopleinSection: section] count]のようなものを返し、tableView:cellForRowAtIndexPathcell.textLabel.text = [[[peopleInSection:indexPath.section] objectAtIndex:indexPath.row] getPersonName]のようなセルを返すように設定する必要があります。意味がありますか?

+0

私は各人のセクションと行を保存するのが得意ですが、tableView:cellForRowAtIndexPathでその情報を使用してテーブルを正しく取り込む方法がわかりません。 – tazboy

+0

明確にする:すべての人がtableViewの_one_セクションにありますか? –

+0

はい、すべての人がセクション内にあり、セクションは1つだけです。グループに6人いると、2人(行)の3つのサブグループ(セクション)、または3人の2つのサブグループなどができます。 – tazboy

1

どのように保存する必要があり、各オブジェクトのクラス(NSObjectののサブクラス)を作成し、そのクラスにあなたのためにプロパティを追加することができますについて各オブジェクト。次に、NSKeyedArchiver/Unarchiverを使用して、オブジェクトを保存して再利用できるように戻します。

0

行とセクションを引数とする関数を作成し、配列を検索してその特定の人を返します。

関連する問題