2012-02-21 36 views
0

我已經構建了iOS 5 iPad應用程序,它使用第二個屏幕。我們有一個管理視圖(在iPad上)和一個通過Apple DVI適配器連接的HDMI電視機的外部視圖。 iPad視圖和電視視圖都會從每隔幾秒進行一次服務調用獲取相同的數據更新。然後,我們將收到的數據作爲一系列圖表呈現出來;對於電視和iPad視圖,圖表數據的顯示方式非常不同 - 但核心數據字典是相同的。我想知道構建這個解決方案的優雅方法。目前,我有一個視圖控制器(admin ipad VC)使用GCD進行服務調用,然後調度NSNotifications來更新另一個(TV)視圖控制器上的數據(圖表)屬性。我正在考慮將服務調用從VC移開,並創建一個在應用程序控制器中初始化的單例。然後,我(以某種方式)將兩個VC設置爲委託,並使用簡單的協議進行更新。我不完全確定這是一種好的方法,還是我應該考慮其他的東西?我甚至可以將兩個VC都設置爲另一個類的委託,還是通常每個類實例只有一個委託?iOS Airplay viewcontroller數據同步

感謝您的任何意見。

回答

0

爲什麼不是抽象的圖表數據到自己的模型類,你可以在這兩個視圖控制器共享?模型類可以負責獲取新數據。爲了讓控制器知道更新,他們既可以在模型對象上使用KVO,也可以觀察發生更新時從模型對象發送的通知,或者可以爲模型對象和每個視圖控制器提供一個委託數組成爲代表。

似乎沒有任何令人信服的理由使它成爲一個單身人士,儘管你可以如果你真的想要。

+0

是的,這就是我要說的。創建一個模型,但我不確定在兩個活躍的VC之間分享這個模型的「最佳實踐」。關於單身人士,這是正在進行服務電話的班級。它在啓動時創建並初始化,並繼續調用服務器,然後使用該模型更新兩個VC。除非必要,否則我不喜歡使用通知;從經驗中,你可以很容易地結束一個太離散的應用程序,解決左,右和中心事件,並且沒有責任鏈。 – Ben 2012-02-22 16:44:08