2013-09-27 82 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