2012-04-19 61 views
0

我已經設法創建一個tableViewController內的NavigationController(使用斯坦福大學的CoreDataTableViewController)與數據通過核心數據加載。用戶可以檢查一些參數,設置默認值等。它工作得很好,用戶也可以將參數保存到數據庫等。無法模擬推tableView包含核心數據數據

但是,這只是我正在構建的應用程序的一小部分。該應用程序以TabBar控制器開始。第一個選項卡包含一個UIViewController,並且在這個視圖中,我希望能夠模式化包含所有核心數據內容的tableViewControllers。

我相信我在設置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; 

    } 

它構建好,並給出沒有錯誤,也不警告。

任何人都可以幫我一下嗎?我真的很感激它!

在此先感謝!

回答

0

可能是這個問題:segue中的「destinationViewController」不是CameraMakerTVC(我猜它是表視圖控制器),而是包含它的UINavigationController。所以,當你嘗試這樣做:

cameraMaker.managedObjectContext=self.managedObjectContext

INFACT你想不叫的setter一個CameraMakerTVC控制器,但一個UINavigationController上。你應該試着這樣做:

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

+0

哦,哇!這就是它!非常感謝!現在你指出了它,這是非常有意義的。 – Marcal 2012-04-19 11:04:27