これについてはあまり情報が見つからないため、どこから始めればよいか正確にはわかりません。私がやろうとしているのは、詳細ビューに UIButton を追加することです。これを押すと、「メモ」アプリに似た、テーブル ビューから次のコア データ オブジェクトが読み込まれます。それを行う方法に関する提案はありますか?ありがとう
4 に答える
委任パターンはどうですか?
マスター ビュー コントローラーをディテール ビュー コントローラーのデリゲートにします。「次へ」ボタンを押すと、デリゲート (テーブル ビュー コントローラー) にメッセージが送信されます。デリゲートは、次のオブジェクトで詳細ビューをセットアップします。
次のオブジェクトを特定するコードを詳細ビュー コントローラーに追加することはありません。テーブルビュー コントローラーには、これらのメソッドが既にあります。
最善の策は、ロードするすべてのオブジェクトを順番にフェッチするフェッチ リクエストを実行することです。これは実際にはデータをフェッチしませんが、オブジェクトを「失敗」させます。フォルトは基本的に、実際にそのエンティティを取得することなく、コア データ エンティティへの参照を提供します。リクエストは、フェッチリクエストオブジェクトにロードしたソート記述子に基づいてソートされた NSArray を返します。次に、NSArray で現在使用しているインデックスを追跡するローカル プロパティを設定し、UIButton が押されるたびに配列内の次のオブジェクトをロードするだけです。配列からオブジェクトをロードすると、コア データはそのエンティティのすべての属性を自動的に取得します。
モデルが tableView の各オブジェクトに対応する一意の値を持っている場合、オブジェクト プロパティを prepareForSegue の辞書の配列にロードし、それを詳細ビューに渡すことができます。 indexPath.row のオブジェクトと配列の objectAtIndex。
リスト内の位置を決定するために、選択した行のインデックスを取得してください。そうすれば、UIButton をタップするたびに辞書の配列をトラバースできます。詳細ビューにデータを入力するだけでは不十分な場合は、各ディクショナリ オブジェクトに対応する一意のモデル オブジェクトを取得できます。
元のオブジェクトを操作するほどきれいではありませんが、MySpecialPurpose で言及されている障害の問題を回避します。