2011-05-26 129 views
2

我有一個「NewsViewController」,它有一個PostViewController類型的名爲「postViewController」的屬性。從PostViewController內部我想調用NewsViewController類的一個方法。什麼是最簡單的方法來做到這一點?iphone親子對象關係

google搜索這個問題之後,好像我應該使用委託或發送通知,但我希望會有這樣做就像[self.parent parentMethod]一個更簡單的方法...

請告訴我還有一個更簡單方法來做到這一點! :) (如果沒有,請解釋原因!)

+0

幾乎涵蓋了所有常用方法,傳遞父對象並使用[self .parent parentMethod]可能不是最好的最可擴展的方式,但它起作用,而且這真的是最重要的事情。我會建議學習委託模式或觀察者模式(前面提到的兩個),因爲它們將成爲以後的寶貴工具。 – Joe 2011-05-26 17:06:15

+0

你的意思是「傳遞父對象」到底是什麼意思? – teum 2011-05-28 12:36:18

+0

NewsViewController中的方法可以是靜態的嗎?如果是這樣,那麼在PostViewController中不需要它的實例。另外,如果方法可以是靜態的,也許它應該被重構成實用程序或輔助類來減少耦合。 – johnnieb 2011-05-29 19:29:15

回答

0

好像我應該使用委託或發送一個通知,但我希望有一個更簡單的方法來做到這一點,如[self.parent parentMethod]

代表,在其最基本的水平。在處理parentMethod消息的類型的子對象上創建一個屬性。在實例化子對象或您的子對象後,您的父項將self指定給它,並顯示init...方法,您可以將它傳入。

-1

使用super關鍵字:[super parentMethod]

看到這個答案:What exactly is super in Objective-C?

+0

這是爲顯式調用其超類的子類。這個問題的部分問題是術語「父母」和「孩子」的定義。可能是他意味着視圖和子視圖,或導航控制器堆棧上的viewControllers ... – 2011-05-26 17:10:30

+0

是的,我的問題不夠清楚,這就是爲什麼我改述它。你是對的我不想從一個子類中調用超類的方法。我需要從它的一個屬性中調用一個對象的方法......我很難正確地寫它,閱讀我編輯過的第一篇文章可能會有所幫助。 – teum 2011-05-28 12:39:26

+0

這個問題已經完全改變了。我認爲我不應該投下票。 – johnnieb 2011-05-29 18:50:54