簡體   English   中英

如何使用故事板與標簽欄控制器作為初始控制器共享UIManagedDocument?

[英]How to share a UIManagedDocument using Storyboards with a Tab Bar Controller as initial controller?

我的應用程序使用位置數據,並將其顯示為表格和地圖。

它以一個標簽欄控制器開始,每個視圖都是一個導航控制器(一個用於表格視圖,一個用於地圖,等等)。

我想共享一個UIManagedObject以便使用相同的Managed Object Context,因此,如果用戶在表視圖上更新,則該數據也將針對該映射進行更新,因此無需更新兩次。

最初,我想到了對Tab Bar Controller進行子類化,並添加UIManagedDocument作為屬性,然后將其傳遞給prepare Segue方法的每個控制器。 但是我讀到UITabBarController並不打算被子類化。

另一種方法是創建一個View Controller,將Managed Document as屬性添加到它,並添加一個Tab欄。 但是我認為通過以圖形方式顯示一些關系而僅以代碼形式顯示其他關系,我的情節提要板將變得不清楚或不一致。

哪一個合適? 還是有更好的方法呢?

在此先感謝您,並致以最誠摯的問候。

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
if ([[segue identifier] isEqualToString:@"showGuide"]) 
    {
        UITabBarController *tabBarController = (UITabBarController *)[segue destinationViewController];
        for (id vc in tabBarController.viewControllers) {      
            [vc setValue:_document forKey:@"document"];            
    }
}

我也遇到了這個問題,我選擇了一個單獨的文檔處理程序類,該類通過類提供對已加載文檔的訪問。

[[MYDocumentHandler sharedDocumentHandler] performWithDocument:^(UIManagedDocument *document) {
    // Do stuff with the document, set up a fetched results controller, whatever.
}];

我已經編寫了解決方案,並在此處發布了代碼: 具有單個共享UIManagedDocument的核心數據

暫無
暫無

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

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