2012-10-06 52 views
5

在兩個視圖控制器之間傳遞數據的示例很多,其中一個視圖控制器導航到另一個視圖控制器。在視圖控制器之間使用代理傳遞數據,無需任何導航控制器連接

但是是否有可能使用自定義協議&傳遞數據在未通過導航控制器連接的視圖控制器之間的代表?

所以,一個例子可能是:三個視圖控制器,即AB,CA導航到BB導航到C。我知道如何使用自定義協議&代表在A & B之間傳遞數據。但是我們能否通過C & A之間的數據。因此A可以是C的代表,從而可以從C接收數據。這可能嗎?

任何幫助,將不勝感激。

回答

8

的一種方式是使用代表用於數據

的向後通過參考simple-delegate-tutorial-for-ios鏈接,由C數據傳遞到控制器。

檢查basic-delegate-example鏈接。

另一種方式是通過發佈通知。向後傳遞數據

檢查Comunicate-Two-Views鏈接。

+0

thanx您早日答覆。但在第一個示例中,兩個視圖控制器使用模態視圖進行連接。第二個例子也一樣。 – footyapps27

+0

耶可以使用通知,但我想知道是否可以使用自定義協議和代表來實現。 – footyapps27

+0

第二個例子不會工作,因爲它們不會繼承自定義協議。 嘿,我知道如何使用導航控制器連接的兩個視圖控制器之間使用委託傳遞數據。 – footyapps27

1

你可以使用一些單例類並在其中實現委託協議。所以你將有機會在任何視圖控制器之間傳遞數據。

+0

你可以澄清一點。 – footyapps27

+0

好的。 Singleton是一個只有一個實例的desisn模式,你可以隨時在代碼中的任何地方調用它。因此,在您方案A,B和C的視圖控制器出現一個多個類d,它可以訪問的任何控制器,即使沒有與navigationController –

+0

連接。這是單例的例子 * NSUserDefaults的userDefaults = [NSUserDefaults的standardUserDefaults]; NSNotificationCenter * notificationCenter = [NSNotificationCenter defaultCenter]; UIApplication * myApplication = [UIApplication sharedApplication]; –

相關問題