次のデザインのアプリケーションがあります。 ドキュメントを一覧表示するテーブルビューです。 およびドキュメントを編集するViewController。元の参照にオブジェクトのコピーを戻す方法を教えてください。
ドキュメントを編集するときに、オブジェクトのコピーを使用したい場合、ユーザーがキャンセルを押した場合にコピーを破棄します。ユーザーが[保存]を選択した場合は、変更したドキュメントをオリジナルにコピーします。 (多すぎるため、すべてのドキュメントのフィールドをviewControllerのプロパティとして持つことはできません)。
テーブルビューコントローラ:
SelectedRowAtIndex {
document= [documentsArray objectAtIndex:indexPath.row];
viewController.assignedDocuemnt= document;
}
その後、私はアイテムが変更されたビューコントローラクラスがあります。
@interface
@property (nonatomic,retain) Document *asignedDocument;
@property (nonatomic,retain) Document *editedDocument;
viewDidLoad{
editedDocument= [assignedDocuemnt copy];
}
IBAction save {
assignedDocument=editedDocument;
}
を私の問題はdocumentsArrayで原稿が編集されたバージョンに更新されないということです。 私は何を欠席しましたか?
答えをありがとう。 「良い方法」の最後の部分について詳しく説明できますか?ドキュメント配列を別のDataクラスでシングルトンとして保持しています。 – Rod
私は、テーブルビューコントローラに送るメッセージをハードコーディングするよりも優れています。 'replaceSelectedDocument'を送ると、それらのオブジェクトは永遠に結合されたことになります。代わりに、 'target:self action:@selector(replaceSelectedDocument:)'を渡した場合、柔軟性と結合性が失われてしまいました。エディタは実際にはテーブルビューコントローラによって呼び出されたことに気付かず、終了時に指定されたターゲットに指定されたメッセージ。 –