1

私の iOS アプリには、予定、メモ、連絡先などを表すさまざまな Core Data エンティティがあります。

ユーザーが各エンティティの選択した属性をUITableView. iOS カレンダー アプリと同様に、[編集] をクリックするUITableViewと、開始時刻、終了時刻などの編集可能な値が表示されます。

ここで大量のコードの再利用が行われている可能性があることに気がついたので、現在ManagedObjectEditorViewController、マネージド オブジェクトを受け取り、選択した属性値をテーブル ビュー内に表示し、それらに従ってフォーマットされたジェネリック クラスを作成することを検討しています。入力し、編集できるようにします。

これを行うためのいくつかの巧妙な方法を考えることができますが、これに長い時間を費やす前に、このタスクを達成するための何かが既に存在するのではないかと考えています。あまりにも頻繁に使用されるアプローチのように思われるため、オープン ソース コードがまだ公開されていないとは信じられません。

誰かが聞いた、または同様のものを使用しましたか?

4

1 に答える 1

2

私も同じことをしようとしています。開始したばかりで、これまでのところ機能しています。(マスター ビュー コントローラーへの詳細、マスター ビュー コントローラー自体の側面を持つ)を表すテーブルNSManagedObject

表全体が 1 つを表しNSManagedOjbectます。単純なプロパティに対応するフィールドやその他のコントロールがあります。

参照されるオブジェクトが表示されるだけで変更できる対 1 参照があります。

編集可能な NSObjects 自体である対 1 参照があり、そのうちの 1 つと正確に 1 つが存在します。

追加、削除、編集できる参照が多すぎます。カレンダーアプリやアドレス帳アプリとかなり似ています。(機能的な観点から。見た目は異なりますが)。

そのために、テーブル セルとビュー コントローラーの間にデリゲートを確立します。これは主に、MVC パターンに固執しようとするためです。

たとえば、セルは のデリゲートとしてUITextViewsUITextFieldsまたはボタンなどのターゲットとして機能します。NSManagedObjectおよびすべての関連オブジェクトを所有する (詳細) ビュー コントローラーは、セルのデリゲートとして機能します。IBActions に似たメソッドをセルに提供するため、セルは 1) イベントについて通知し、2) 必要に応じて関連するビューを引き渡し (それに応じていくつかのポップアップを表示する必要があります)、3) オブジェクト自体 (オブジェクトなど) を渡すことができます。ビューコントローラーは、他のビューコントローラーを呼び出すという独自の役割を果たします(メールの送信、アドレス帳からの選択、現在の表示)。ユーザーが選択できるオプションを含むポップオーバー、...)。

私はちょうど昨日の夕方にそれを構築しました。(それは私の自由時間のプロジェクトです)。私は今のところ満足していますが、コンセプトはまだ証明されていません :) .

現在お気に入りのアプローチは何ですか?

于 2013-03-05T11:21:01.440 に答える