0

Ok。これは挑戦です。

ナビゲーションコントローラー内にテーブルビューがあります。

新しいレコードを追加できる追加アクションがあるルートからプッシュします。それはうまくいきます。

今私がやろうとしたことは、このテーブルビューをタブバービューに追加することです(動作しないタブバーコントローラーがないため)が、同じナビゲーションコントローラー内にあります。

だから私がやりたいのはこれです:ルート> TabBarView(Tableviewをロード)>新しいレコードを追加します。

問題は管理対象オブジェクトのコンテキストにあります。「エンティティ エラーが見つかりません」というエラーが表示されますが、修正方法がわかりません。

AddRecord モーダル ビュー コントローラーを tabBarView から表示することができましたが、ナビゲーション バーなしで表示されますが、単独の tableView (タブバーの外側) にレコードを追加しようとしても問題ありません。

現在、TabBarView の navigationBarbuttons からメソッドを呼び出して、tableviews メソッドにルーティングしています。

現在、実際のテーブルビューではなく、tabBarView からメソッドを呼び出す必要があることはわかっていますが、メソッドは起動しますが、tabView にあるときに MOC を管理する方法がわかりません。

ああ、これはコアデータのレシピと書籍に基づいているため、add record メソッドが起動されると、新しい MOC を作成して作成し、完了したらメインの MOC に再統合します。

何か案は?

4

2 に答える 2

0

いくつか問題があるようです。

  1. 「エンティティが見つかりません」というエラー -- これは、使用している管理対象オブジェクト コンテキストによって異なります。編集中のオブジェクトを管理するために別の MOC を作成した場合 (ちなみに、これは良い考えです)、必ず永続ストア コーディネーターを割り当ててください。これは、MOC が使用可能なオブジェクトを検出する方法です。App Delegate で作成された MOC を使用している場合は、エンティティの名前のスペルが正しいことを確認してください。
  2. シートにナビゲーション バーがない -- ビュー コントローラをナビゲーション コントローラにプッシュすると、それnavigationItemがナビゲーション バーの表示に使用されます。ビュー コントローラーをシートとして提示すると、ビュー コントローラーのみが表示されます。ナビゲーション コントローラーには組み込まれていません。ナビゲーション項目を表示するには、ビュー コントローラーをルートとして新しいナビゲーション コントローラーを作成し、ナビゲーション コントローラーのビューを表示する必要があります。
于 2009-10-27T14:00:24.380 に答える
0

メインの MOC に関する限り、ビューとコントローラーは無関係であるべきです。使用しているコントローラーで MOC への参照を取得し、その MOC で操作します。アプリケーション デリゲートがメイン MOC を作成する場合は、それをそのデリゲートのプロパティにして、ビューまたはタブ コントローラーからアクセスします。

どのようなナビゲーションの問題が発生しているかはよくわかりませんが、必要なときにナビゲーション バーがない場合は、UIViewController サブクラスを追加する場所に UINavigationController を作成して追加する必要があると思われます。サブクラスを新しい UINavigationController のルートにし、コントローラーをタブなどに配置します。

管理対象オブジェクト コンテキスト (MOC) は、ナビゲーションやビューに依存してはなりません。モデルの一部です。(ご存知のように、キャンセル可能な編集ビューの 2 番目の MOC は、編集者使用するために作成する限り、ナビゲーションに依存します。)

于 2009-10-27T03:01:30.607 に答える