簡體   English   中英

不是從 AppDelegate 啟動 CoreData 視圖?

[英]Launch CoreData View Not From AppDelegate?

我正在使用 Core Data 並且對它非常陌生。 這段代碼看起來很重要:

UINavigationController *navigationController = (UINavigationController *)self.window.rootViewController;
    MasterViewController *controller = (MasterViewController *)navigationController.topViewController;
    controller.managedObjectContext = self.managedObjectContext;

它將managedObjectContext設置為所需的視圖對嗎? (這次是MasterViewController

現在我玩過它,但似乎無法讓它工作。 如果我想從應用程序的其他地方啟動MasterViewController ,而不是直接從/作為根視圖啟動,該怎么辦?

編輯

我在InterFace Builder中看到的觀點:

UINavigationController >Relationship> UIViewController >Push Segue> UITableViewController

所以在界面構建器中, UINavigationBar 是空白的第一個控制器,然后 UIViewController 連接到它,並且是用戶將在應用程序中看到的第一個視圖。 然后我想從那里到我的 UITableViewController 那里我有我的 CoreData 使用。

您有兩種解決方案:

您必須在所有 UIViewController 之間通過所有應用程序傳遞NSManagedObjectContext

或者

從這樣的任何地方獲取您的NSManagedObjectContext

[[[UIApplication sharedApplication] delegate] mainManagedObjectContext];

確保:

  1. 您的視圖控制器(不是視圖)可以訪問正確的managedObjectContext
  2. 您的表視圖datasourceself.fetchedResultsController獲取其數據。
  3. 你配置你的 fetched results controller 來為你的 tableview 獲取正確的數據。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM