0

iOSの「連絡先」アプリと同じようにアプリを機能させたい。ユーザーが特定のTableViewCellを選択したときに、特定のデータをロードしたいと思います。

ここに画像の説明を入力してください

「ジョセフ、リチャード、シャノン」のいずれのセルが押されても問題ありません。このビューが表示されます。

ここに画像の説明を入力してください

ここに画像の説明を入力してください

どちらのビューもまったく同じように見えますが、表示される情報が異なるだけです。だから私の質問は次のとおりだと思います:NSUserDefaultsを使用して各セルにキー@ "cell1" @ "cell2"などをプログラムで設定するにはどうすればよいですか?しかし、ここに問題があります。追加されるセルの数がわからないため、これをハードコーディングすることはできません。追加されるセルの数に応じて、各テーブルビューセルのキーを作成するにはどうすればよいですか。助けてくれてありがとう!

4

3 に答える 3

2

の使用に心が行き詰っている場合は、これをNSUserDefaults試してください。

NSUserDefaults * prefs = [NSUserDefaults standardUserDefaults];
cellNumber = [prefs objectForKey:[NSString stringWithFormat:@"cell%d", index]];

次に、表示する必要がある数を正確に把握できるように、最大​​インデックスを保存できUITableViewCellsます。

のストレージ制限が低いためNSUserDefaults、そこにすべての情報を保存できない場合があることに注意してください。詳細については、こちらをご覧ください。

それが役立つことを願っています!

于 2012-11-03T05:50:39.540 に答える
1

NSUserDefaultsおそらく、設定などの永続的なユーザー情報にのみ使用される ....を使用したくないでしょう。そういうのはCore Dataを使ったほうがいいですよね。

ビューにタグを付けたいので、セルのデキュー中に-[UIView setTag:]またはUIView.tagプロパティ/メソッドを使用するという 1 つのアイデアがあります。UITableViewCellデリゲート メソッドを使用するUITableViewと、セルのタップを検出し、そのタグを取得してNSUserDefaults、データベース (またはそれ以上) を検索できます。

推奨される方法は、インデックス付きデータベースを保持し、セルをデキューし、タップされたときにセルのインデックスを使用して詳細ペインに移動することです。NSUserDefaultsこれは、ビューにタグを付けてデータをプルするために使用するよりも、はるかに代表的なプログラミング モデルです。

于 2012-11-03T05:37:20.380 に答える
0

これを行うには、NSUserDefaults に格納するよりも、各セルのキーと値のペアを格納する NSMutableDictionary を作成します。

NSMutableDictionay *dict = [[NSMutableDictionary alloc] init];
[[NSUserDefaults standardUserDefaults] setObject:dict forKey:@"myKey"];
[dict release];

必要なときにいつでもセル値で辞書を更新できます。

NSMutableDictionary *dict = [[NSUserDefaults standardUserDefaults] objectForKey:@"myKey"];
[dict setValue:aNameforThisCell forKey:[NSString stringWithFormat@"cell%d", indexPath.row]];
于 2012-11-03T08:49:30.607 に答える