4

ユーティリティテンプレートに基づくアプリがあります(ビューをめくって別のテンプレートを表示します)。最初のビューにはログイン画面があり、次にそれをめくってUITabBarスタイルのインターフェースを表示します。

ManagedObjectContextをAppDelegate(作成場所)から各タブバーのビューに渡す方法を理解するのに問題があります。

App DelegateのmanagedObjectContextはFrontLoginViewControllerに渡され、FrontLoginViewControllerはBackViewTabBarViewControllerに渡されます。

BackViewTabBarViewControllerペン先には、タブごとにUINavigationControllerを備えたUITabBarControllerがあります。

4

2 に答える 2

11

managedObjectContextがAppDelegateで定義されているように聞こえます。もしそうなら、そして...

必要なviewControllerから...呼び出すだけです

MyApplicationDelegate *appDelegate = (MyApplicationDelegate *)[[UIApplication sharedApplication] delegate];

次に使用します...

appDelegate.managedObjectContext

managedObjectContextが必要なときはいつでも。MyApplicationDelegateをAppDelegateに変更すると、準備が整います。

于 2010-10-19T18:29:47.573 に答える
2

私はこれと同じ問題に遭遇しました、私は私の解決策を共有します。

まず、nibファイルのタブバーにあるNav Controllerへの参照が必要です。必ず、接続してください。

IBOutlet UINavigationController *navigationController;

次に、サポートドキュメントで推奨されているようにコントローラーを取得し、managedObjectContextを送信します。

SavedTableViewController *saved = (SavedTableViewController *)[navigationController topViewController];
saved.managedObjectContext = self.managedObjectContext;

Alex(別の投稿から)は正しいです。「通常、アプリデリゲートから共有オブジェクトを取得しないようにする必要があります。これにより、グローバル変数のように動作しすぎて、問題が発生します。」

于 2011-02-05T16:19:54.790 に答える