2011-11-06 41 views
9

我剛剛開始玩UISplitViewController - 我已經拼湊了一些來自各種教程的代碼,但我無法看到如何將數據從主發送到詳細信息。我創建一個RSS閱讀器只是爲了向我自己說明它應該如何工作。我已經解析了一個RSS提要,並用一個UITableView填充了MasterViewController,但我不知道如何進行點擊並在detailViewController的UIWebView中加載相應的文章。任何提示都表示讚賞。UISplitViewController主/從通訊

回答

10

一個好方法是使用代表。這允許一個視圖調用另一個視圖提供的回調。在這種情況下,詳細視圖依賴於現有的主設備,因此回調沒問題。我會避免讓他們彼此直接引用並直接讀取其他數據。

What exactly does delegate do in xcode ios project?

下面是與UISplitViewController教程在支持(主/詳細之間代表)只是:

http://www.raywenderlich.com/1040/ipad-for-iphone-developers-101-uisplitview-tutorial

具體地說本節:

掛鉤的左正確使用

時間玩媒人和鉤子 這兩個人在一起。

如何最好地完成這一點有很多不同的策略。在分割視圖應用程序模板中,它們 給予左視圖控制器一個指向右視圖控制器的指針, ,左視圖控制器在選擇一行時在右視圖控制器上設置屬性。當屬性更新爲 時,右側視圖控制器 將覆蓋該屬性以更新視圖。這很好,但我們將按照在這裏的UISplitViewController類參考中建議的方法 - 使用 代表。基本思想是我們要定義一個協議,採用單一方法012-- 「selectedBotChanged」。我們的右側將執行此方法 ,並且我們的左側將接受某個想要知道此事的人的代表 。

另一種方法是建立一個共享模型 - 有點像一個單獨的通知,觸發不同的視圖,根據通知中的數據或者根據模型變化查詢模型來更新自己。這在有許多視圖的應用程序中有時更好,這些視圖不依賴於彼此,只是以各種方式冒泡數據(這裏不是這種情況 - 詳細視圖依賴於現有的主數據,因此委託很好)。

+0

剛纔在這個問題上回答了這個問題。 http://stackoverflow.com/questions/33721081/swift-how-to-detect-if-uisplitviewcontroller-is-currently-showing-1-or-2-contro/38547858#38547858 –