将选取器输出传输到另一个视图数组



可能重复:
xcode选择器输出到阵列

我有两种观点。

其中一个有一个选择器,下面有一个按钮。

这是我的按钮代码:

    -(IBAction)buttonPressed
{
NSInteger suitRow = [doublePicker selectedRowInComponent:
                      kSuitComponent];
NSInteger numberRow = [doublePicker selectedRowInComponent:
                        kNumberComponent];
NSString *suit = [suitTypes objectAtIndex:suitRow];
NSString *number = [numberTypes objectAtIndex:numberRow];
NSString *message = [[NSString alloc] initWithFormat:
                     @"%@ of %@.",number, suit];
}

另一个视图有一个类似于在.中显示选择器输出的表格单元格id

具体来说,我需要将选择器输出(上面的*消息(插入到另一个视图中特定索引处的数组中,即与行号相关的索引。现在我已经对行号进行了排序。

我甚至知道数组填充后该怎么处理。

请有知情人告诉我如何在按下选择器下面的按钮时将选择器输出从选择器视图转移到其他视图数组中?

假设这是可能的,对吧?

实现这一点的一种方法是为具有选择器的视图创建委托方法,该选择器在按下通过委托方法发送所选信息的按钮时启动。

然后,使显示视图的控制器实现委托方法,并在创建第二个视图控制器时将其设置为第二个图控制器的委托。

我写了一个简短的示例项目来展示这个代表团。应该很容易看到这是如何工作的,并将其转换为使用picker视图的结果。

如果上面包含代码的对象引用了包含数组的对象,那么一个解决方案是将数组作为其包含对象的属性,然后在上面的代码中,使用类似于的内容

[otherViewController.dataArray replaceObjectAtIndex:index withObject:message];

这假设您的数据阵列是NSMutableArray。

这听起来像是在导入另一个视图控制器的标头,但实际上并没有给它一个对对象的引用。要完成这个循环,请将一个属性添加到类型为otherViewController的picker视图控制器类中(很抱歉,您没有给出任何实现详细信息,所以我在编这些(,当您从otherViewController创建/调用picker视图控制器时,请将此属性的值设置为self

示例伪代码,当你做任何事情来调用picker视图时:

 PickerViewController *pvc = [[PickerViewController alloc] init];
pvc.callingView = self;
pvc.index = selectedRowIndex;
// Then present and release your PickerViewController...