在视图之间传递NSMutableArray数据

时间:2014-06-21 03:22:56

标签: ios objective-c cocoa-touch nsmutablearray

我无法将NSMutableArray数据从一个视图传递到另一个视图。

我的视图转换工作方式如下

发送视图 - >收件人查看

收件人视图 - >发送视图

在收件人视图中,我抓住了我想要发送数据的人。一旦我使用数组抓住人们,我就会回到发送视图,向那些人发送数据。

在我的发送视图中,我有以下NSMutableArray

@property (nonatomic, strong) NSMutableArray *sendTo;

我在viewDidLoad中初始化它,如下所示:

self.sendTo = [[NSMutableArray alloc] init];

在我的收件人视图中,我有以下NSMutableArray

@property (nonatomic, strong) NSMutableArray *recipientsArray;

我在viewDidLoad中初始化它,如下所示:

self.recipientsArray = [[NSMutableArray alloc] init];

我在这个控制器中也有一个后退按钮,它试图处理recipientsArray中数据的传递。请注意,此数组确实包含数据,直到视图切换为止。

- (IBAction)back {
   SendView *send = [self.storyboard instantiateViewControllerWithIdentifier:@"View"];
   send.sendTo = [NSMutableArray arrayWithArray:self.recipients];
[self dismissViewControllerAnimated:YES completion:nil];
}

知道为什么我的发送视图中的数组返回nil?

1 个答案:

答案 0 :(得分:2)

此代码会创建SendView ...

全新实例
SendView *send = [self.storyboard instantiateViewControllerWithIdentifier:@"View"];

此代码在sendTo全新实例上设置SendView属性。

send.sendTo = [NSMutableArray arrayWithArray:self.recipients];

back方法结束时,SendView的此实例超出了范围,并且永远消失了。

总之,您必须引用{strong>现有 SendView实例才能做有意义的事情。