2009-08-14 7 views
0

テキスト項目のリストを持ち、それをタップして編集できるようにするにはどうすればよいですか?ディテールビューにはいかがですか?しかし、あなたはどのようにあなたの変更をUITableViewに戻すことができますか?UITableViewでリスト/詳細編集を行うにはどうすればいいですか?

これはすべてSQLやCoreDataで行うことができますが、UITableViewは配列に基づいているため、配列の要素を編集してテーブルビューをリセットできますか?

最終的に私はデータを永続化したいので、おそらくCoreDataまたはSQLを使用しますが、今はリストから詳細に移動し、詳細を編集してリストに戻したいと考えています。

+0

ナビゲーションコントローラ、モーダルビューなど –

+0

ええ、私は特定のサンプルを探しています。詳細なUIViewにつながるUITableViewを作成しました。テーブルの選択されたテキストは詳細ビューのテキストフィールドになりますが、そのテキストを編集してテーブルビューに戻すことはできません。誰にでも具体的なアイデアは? –

答えて

0

"しかし、あなたはどのようにあなたの変更をUITableViewに戻しますか?"

テーブルビューと詳細ビューの両方で共通のモデルオブジェクトにアクセスする必要があります。つまり、データを変更している詳細ビューでは、テーブルビューが存在することを知る必要はありません。

0

ルックアッププロトコル。基本的には、共有する情報を持つクラスがあります。この場合、上記のように、詳細コントローラまたは何らかの種類のデータオブジェクトになります。このクラス(情報を共有する)は、その情報を使用するプロトコルを宣言します。この方法では、パラメータを使用して情報を盗み出す必要があります。また、クラスは、 というid(より小さい)プロトコル(より大きい)を のdelegateとして宣言します。ここで、「protocol」は、上記で宣言したものです。

ここで、このクラスでは、共有する情報を取得したときに(ただしそれを実行します)、代理人メソッドメッセージを代理人に送信します。 [delegate informationObtained:newInfo]

この情報を必要とするクラスについては、プロトコルメソッドを実装してください。必要な情報は、パラメータによってメソッドに渡されます。 TextFieldDelegateUIPickerFieldDelegateを使用するのと同じ方法で、プロトコルを決定し、プロトコルを実装する方法を決めます。ここでのコード例です

SpeakHereController.hインタフェースで

@protocol SpeakHereControllerDelegate 
-(void)newSoundCreated:(NSString *)newSoundName savedFile:(BOOL)savedFile element: (id)element; 
-(void)cancelNewSound; 
-(void)soundEdited; 
@end 

: IDデリゲート。 は、私が情報を持っていたら は私が共有したい、実装ファイルで

を(割り当て、非アトミック)が作る、@propertyを忘れないでください:テーブルビューコントローラの今

[self.delegate newSoundCreated:myFileName savedFile:self.savedFile element:self]; 

をその

01:そして、実装ファイル内のメソッドを実装しますが、プロトコルに

@interface AlarmSoundsTableViewController : UITableViewController <SpeakHereControllerDelegate, UITableViewDataSource, UITableViewDelegate> 

を実装しようとしている.hファイルの宣言で :この情報を使用したいです

関連する問題