1

我有一個使用拆分視圖,以顯示一個主設備和細節視圖一個iPad故事板驅動的應用程序。如何將數據從DetailViewController的子視圖傳遞給MasterViewController?

DetailViewController有一個子UITableViewController,它在DetailViewController中填充原型化的UITableView。 UITableViewController使用NSFetchedResultsController來管理數據檢索,以方便與UITableView一起使用數據。

MasterViewController包含另一個用UITableViewController中包含的數據的子集填充的UITableView。

我遇到的問題是我需要MasterViewController能夠從NSFetchedResultsController記錄集更新它的內容,但發現我無法爲此使用委託,因爲UITableViewController是DetailViewController,它是MasterViewController的子項。

雖然我知道我可以使用NSNotificationCenter來做到這一點,但我希望能通過視圖層次將相關數據傳回MasterViewController。我曾考慮將FRC中的數據加載到實例變量中,並使用KVO觸發DetailViewController上的委託方法,但這似乎令人費解。  這是目前設置的概述:

MasterViewController --> DetailViewController --> UITableViewController.NSFetchedResultsController

能的最佳方式任何人提醒,以實現這一目標?

回答

0

我通過使用NSNotification和方法postNotificationName:object:userInfo:解決了問題,將值的NSDictionary作爲userInfo傳遞。 然後我把我的MasterViewController偵聽通知和處理NSDictionary的自我更新。

這保留在Apple設定的編程指南內,也允許我在應用程序的任何位置傳遞相同的信息。

更多細節在這裏:Notification Programming Topics

0

我會使用NSFetchedResultsController的另一個實例將數據提供給MasterViewController中的表視圖。

+0

既然我已經取我需要到內存中,並可以快速枚舉它能夠產生由MasterViewController所需的數據的數據,似乎低效重新檢索所有的數據再次。我正在研究使用NSNotifications傳遞生成的數據,因爲我還需要在MasterViewController中發送所選單元的詳細信息。 – robotpukeko 2012-07-09 07:59:26

+0

爲了避免傳播對效率的誤解,我會澄清一下,對託管對象上下文的後續讀取請求將不會重新檢索已存在於內存中的對象。 – lucidbeing 2012-07-09 13:51:35

+0

感謝您的澄清;這是很好的知道! – robotpukeko 2012-07-10 08:32:06

相關問題