2013-09-27 118 views
2

這裏新來的ios,請耐心等待。我有一個主視圖控制器(mvc),該控制器轉到一個表視圖控制器(tc1)。 當TC1的行被觸摸時,它塞格斯至(TC2)爲顯示第二實現代碼如下:傳遞一個NSArray到一個segue,它將它傳遞給另一個segue?

+--------+  +--------+  +--------+ 
|  |  |  |  |  | 
| mvc |---->| tc1 |----->| tc2 | 
|  |  |  |  |  | 
|  |  |  |  |  | 
+--------+  +--------+  +--------+ 

數據在TC1的tableview中如在MVC的prepareForSegue一個數組傳遞。我將它加載到tc1.h中定義的屬性中。

由於tc1正在爲tc2 tableview啓動prepareForSegue,看來獲得tc2填充的唯一方法是將兩個數組傳遞給tc1;一個用於tc1 tableview,另一個用於tc1在prepareForSegue中傳遞給tc2。有一個更好的方法嗎?

回答

0

我想你正在使用的數組是一些模型的一部分。創建一個單獨的模型類層次結構,並可能包含一個DataAdapter(一個將作爲模型的上下文的類)。因此,當您提供控制器時,可以從適配器請求數據,例如:self.users= [[DataAdapter instance] allUsers];

如果您傳遞的數據用於暫時顯示某些內容,或者不是模型的一部分,則在prepareForSegue調用中傳遞它沒有任何問題。

+0

謝謝。我只是以後一種方式結束了。它看起來並不是最高效的,但它就是這種方式。數組數據是所有正在傳遞的R/O。 – wufoo

0

考慮爲表1和表2使用單獨的uiviewcontroller類。假設您使用的是故事板,這意味着兩個視圖控制器與嵌入在每個視圖內的tableviews。連接視圖控制器和segues並命名它們。

聲明適當的屬性,記得導入頭文件,你應該可以使用熟悉的prepareforsegue方法,以及b)用傳遞的數據填充表格行。

+0

tc1和tc2確實有單獨的TabeViewController。問題在於,tc1從主ViewController中循環,而tc2從tc1的TableViewController中循環。我認爲你所建議的要求tc1跳回到主VC,然後用不同的TableViewController發出prepareForSegue以從main加載TVC。我必須誤導,因爲這似乎是一個不太理想的解決方案,它將tc2數據數組傳遞給tc1。 – wufoo