我有一個ViewController
類。它有一個類別ViewController (Details)
,其執行:UIViewController與類別衝突之間傳遞數據
(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
打開一個項目的細節。
當我添加一個新按鈕到我的ViewController
類時,我想將一些數據作爲NSArray *myData
傳遞給另一個控制器,如SearchController
。但是,我的prepareForSegue
永遠不會執行,因爲它在ViewController (Details)
之內。所以加入prepareForSegue
到ViewController
似乎忽略它。
如果我使用的工作裏面ViewController (Details)
的prepareForSegue
版本,我SearchController
的作品,但它不會看到伊娃NSArray *myData
在ViewController
聲明。理想情況下,我不想聲明要在ViewController (Details)
中設置的新數據變量,因爲它無關緊要。
如何通過數據按鈕,如果ViewController
不執行prepareForSegue
或ViewController (Details)
沒有看到數據變量?任何建議?
首先使用一些東西來存儲數據,比如CoreData,Realm或靜態引用,這並不重要。這裏最重要的是,如果你對數據使用單向流,你可能永遠不會再次遇到這個問題,因爲你不需要在類之間傳遞數據,相反,你會總是從單一的事實源獲取數據,而已。 –
請顯示代碼---只有相關代碼---來自VC和類別。 – danh
@JanCássio非常正確:vcs應該自己訪問應用程序的模型。但是,他們有時必須傳遞數據,例如,當用戶在vcA中選擇模型的某個方面,並且vcB的工作是提供有關它的詳細信息時,vcA將「傳遞數據」傳遞給vcB是合理和必要的,一個選擇。 – danh