我无法将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?
答案 0 :(得分:2)
此代码会创建SendView
...
SendView *send = [self.storyboard instantiateViewControllerWithIdentifier:@"View"];
此代码在sendTo
的全新实例上设置SendView
属性。
send.sendTo = [NSMutableArray arrayWithArray:self.recipients];
在back
方法结束时,SendView
的此实例超出了范围,并且永远消失了。
总之,您必须引用{strong>现有 SendView
实例才能做有意义的事情。