2010-08-08 29 views
2

仍然遇到此語言的問題。如何在對象之間進行通信

好吧,讓我們說我有兩個對象。第一個是我的應用程序委託,第二個是包含構成主菜單的各種按鈕的自定義視圖。當點擊一個按鈕時,它是響應的菜單。但是,我需要在應用程序委託中使用某些實例變量(例如Window)以實現適當的更改。在這種情況下,我希望主菜單被刪除並替換爲新視圖。換句話說,主菜單需要觸發應用程序委託中保存的方法。

那麼,我該怎麼辦呢?

回答

5

我在我的網站上發佈了一篇博客文章,介紹了將流程提煉成最簡單的方法,可以用來描述如何設置代理。

http://www.dosomethinghere.com/2009/07/18/setting-up-a-delegate-in-the-iphone-sdk/

+0

太棒了! Thankyou英國石油公司的博客文章正是我一直在尋找的!我真的不明白爲什麼在蘋果自己的文件中沒有關於這種特定性質的教程,因爲它是自定義對象設計的基礎部分。 – Ash 2010-08-09 11:31:59

+0

沒問題,有些時候我發現蘋果的文檔可能會有點冗長,並且當你需要特定的東西時很難通過。調整代碼,修改代碼,享受它,讓它做一些不尋常和有趣的事情。你可以隨時點擊我的答案旁邊的小複選標記...:D – 2010-08-09 13:14:49

3

首選的方法是爲您的視圖控制器創建委託協議。然後,您的應用程序委託可以實現此協議並代表您的視圖控制器進行操作。

查看關於Delegation in the Cocoa Fundamentals Guide的部分。還請閱讀有關Modal View Controllers的文檔,因爲這與您正在嘗試執行的操作非常相似。這裏也有一些代碼示例。

+0

感謝您所提供的信息。我已經看過這些文件,並懷疑協議是要走的路。然而,我真的很難找到一個關於如何實際創建自定義協議的好資源。例如,他們應該在哪裏申報,他們應該如何申報,以及當他們有這些申請時如何回覆他們?這是一個真正的試驗,通過大量的材料在開發人員指南中找到搜索功能中的任何特定內容。任何人都可以提出一個很好的協議創建教程? – Ash 2010-08-08 18:01:13

+0

BP的答案中的鏈接詳細描述了所需的步驟。 你也可以查看這篇博文:http://jonsterling.github.com/2009/08/01/using-custom-delegates-in-objective-c.html – ksoderstrom 2010-08-08 19:14:11

+0

Ash:Objective-C編程語言文檔描述協議的語法詳細。 http://developer.apple.com/mac/library/documentation/Cocoa/Conceptual/ObjectiveC/Articles/ocProtocols.html你可以像實現其他方法一樣來實現這些方法;聲明你的類符合協議只是一個承諾,你將實現該協議要求你實現的所有方法。 – 2010-08-09 00:51:09

相關問題