2012-04-19 10 views
0

Core Dataを介してロードされたデータをNavigationController(Stanford UniversityのCoreDataTableViewControllerを使用)内に作成することができました。ユーザーはいくつかのパラメータをチェックしたり、デフォルトを設定したりすることができます。これはかなりうまく機能し、ユーザーはDBにパラメータを保存することもできます。Core-Dataデータを含むtableViewをmodalyできません

しかし、これは私が構築しているアプリケーションのほんの一部です。アプリケーションはTabBarコントローラで始まります。最初のタブにはUIViewControllerが含まれています。このビューの中には、すべてのコアデータを含むtableViewControllerをモーダルに分割することができます。

私は、AppDelegate、managedObjectContextなどすべての設定に非常に注意してきたと思います。明らかに、しかし、モーダルビューを表示しようとしたとき、私は次のエラーを取得していますので、私は何かが欠けている:

[UINavigationController setManagedObjectContext:]: unrecognized selector sent to instance... 

私が検索してきたし、これは何とかmanagedObjectContextが渡されていない兆候であります。

applicationDidFinishLaunching上のコードは次のようである:最初のタブ内に含ま図で

UITabBarController *tabBarController = (UITabBarController *)self.window.rootViewController; 

     RotationVC *rotation=[[tabBarController viewControllers] objectAtIndex:0]; 
     rotation.managedObjectContext=self.managedObjectContext; 

とprepareForSegueのようである:

if ([segue.identifier isEqualToString:@"SetCameraFromRotationSegue"]) 
    { 

     CameraMakerTVC *cameraMaker = segue.destinationViewController; 
     cameraMaker.managedObjectContext=self.managedObjectContext; 

    } 

それが[OK]を構築しないと得られるエラーをも警告。

誰でも私にこの手を差し上げることができますか?私は本当にそれを感謝します!

ありがとうございます!

答えて

0

おそらく問題はここにあります:segueの「destinationViewController」はCameraMakerTVC(私はそれがテーブルビューコントローラだと思います)ではなく、それを含むUINavigationControllerです。だから、これを実行しようとすると:

cameraMaker.managedObjectContext=self.managedObjectContext

InfactはあなたがCameraMakerTVCコントローラが、UINavigationControllerにないセッターを呼び出すようにしようとしています。あなたはこれを実行しようとする必要があります:

UINavigationController *nc = segue.destinationViewController; 
CameraMakerTVC *cameraMaker = [nc.viewControllers objectAtIndex:0]; 
cameraMaker.managedObjectContext=self.managedObjectContext; 

+0

ああ、すごいです!それはまさにそれでした!どうもありがとう!あなたがそれを指摘したので、それは完璧な意味を持っています。 – Marcal

関連する問題