我正在尝试使用 PrepareForSegue 方法将数组从一个视图传递到另一个视图。在第一个视图中,我有一个名为“提交”的按钮,如果按下该按钮,它将读取一个 textView 并将文本存储在一个 NSArray 中,然后应该将此数组传递给另一个视图(push segue),但是当数组到达时是空的。这是代码
//.h
@property (strong, nonatomic) NSArray *words;
//.m
- (IBAction)Submit:(id)sender{
//read textView
_words = [self.myTextView.text componentsSeparatedByCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]];
}
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
//if Submit is pressed go to SecondViewController
if ([segue.identifier isEqualToString:@"secondSegue"]) {
SecondViewController *vc = [segue destinationViewController];
vc.array = _words;
}
}
所以这里是接收数组的 SecondViewController 的代码
- (void)viewDidLoad
{
[self Calculate];
[super viewDidLoad];
// Do any additional setup after loading the view.
}
-(void)Calculate
{
int size = [array count];
NSLog(@"size is %d",size);
}
日志总是说“大小为 0”。我犯了一些错误吗?是不是 Segue 在我读取 TextView 并填充数组之前就发生了,所以它总是空的?提前致谢!
编辑: 我尝试 NSLog 提交操作,我发现程序永远不会访问它,所以它永远不会读取!(ps是的,我连接了按钮)所以segue发生在提交操作之前我该如何解决?我可以在提交操作中复制 PrepareForSegue 代码吗?