2011-02-23 54 views
1

我有一個應用程序在第一個視圖控制器中保留四個變量。 通過導航控制器推送的第二個視圖控制器應將這些變量發送到Web窗體。在視圖控制器中傳遞變量

所以我需要在第二個視圖控制器中的這四個變量。

目前,在第一視圖控制器我設置了瓦爾在應用程序委託有:

MyDelegate *delegate = (MyDelegate *) [[UIApplication sharedApplication] delegate]; 
delegate.var1 = var1; 
delegate.var2 = var2; 
[...] 

當我需要他們在第二視圖控制器,我會通過我的代表得到他們。 但可能這是錯誤的方式。

如何在控制器之間傳輸我的變量?最好的方法是什麼?

+0

這是一個很好的資源從不同的答案:http://stackoverflow.com/questions/569940/whats-the-best-way-to-communicate-between-view-controllers – iwasrobbed 2011-02-23 17:55:04

+0

我現在結帳。謝謝。 – 2011-02-23 18:16:45

回答

4

在第二個視圖控制器中聲明這些變量的屬性,然後當您創建第二個視圖控制器並將其推送到導航堆棧之前,將值分配給這些屬性。

+0

我完全同意。它們是從第一個控制器傳遞到第二個控制器的參數。讓他們成爲全球化的國家是沒有意義的,因此沒有好的做法來推薦。 – Tommy 2011-02-23 17:54:28

+1

我認識湯米。感謝您的建議。一個問題,是通過構造函數傳遞它們的不好方法? – 2011-02-23 17:56:37

+0

我該如何做相反的動作?我的意思是當我在第二個視圖控制器中時,第一個視圖控制器的變化變量。一種方法是使用NSUserDefaults,但這也不是好方法。 – 2011-02-23 18:10:57

0

只要變量在頭文件中聲明爲實例變量,只要UIView控制器仍被實例化,應該可以訪問變量。

0

我認爲最好的做法是通過MySecondViewController構造函數。

相關問題