2011-06-02 61 views
1

我有一個顯示自定義UIPickerView的視圖。我還爲UIPickerView提供了一個單獨的DataSource類,它也是UIPicker的代表。從自定義數據源中獲取選定的行?

我想你需要從數據源(模型)中獲取選定的值,而不是選擇器本身。

從另一個視圖中獲取自定義UIPickerView的選定值的最佳方法是什麼?

我應該保存在didSelectRow自定義數據源類在本地字段中的值:(NSInteger的)行inComponent:(NSInteger的)方法和具有該值的吸氣劑從我的其他視圖使用?

回答

2

從你的問題看來,你沒有將你的代碼與數據分離,換句話說,你沒有遵守模型 - 視圖 - 控制範例。因此,這聽起來像你有一個控制你的數據的視圖...但現在你需要另一個視圖,事情變得混亂。

有多種方式共享數據,他們都真的取決於你在做什麼。例如,假設一個視圖創建數據對象並將它們存儲在NSMutableArray或NSMutableDictionary中。然後,您可以傳遞該對象並使多個視圖訪問數據。

有些人可能希望將其創建爲應用程序委託的屬性。然後,使用[[UISharedApplication]委託]來獲取屬性是一件簡單的事情。

我傾向於繞過對象(除非使用核心數據)並使用屬性來獲取和設置值。

對不起,如果答案有點模糊,但問題也有點模糊 - 沒有一種「正確」的方式來傳遞數據。有一些比其他的更麻煩 - 你會立即知道那些錯誤的(你最終會與代碼作鬥爭)。

相關問題