ios - 传递 NSArray 使数组为空

标签 ios objective-c arrays segue

我正在尝试使用PrepareForSegue 方法将数组从一个 View 传递到另一个 View 。 在第一个 View 中,我有一个名为“提交”的按钮,如果按下该按钮,则会读取 textView 并将文本存储在 NSArray 中,然后应将此数组传递到另一个 View (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 提交操作,但我发现该程序永远不会访问它,因此它永远不会读取! (附:是的,我连接了按钮) 所以segue发生在提交操作之前 我该如何解决?我可以在“提交”操作中复制“PrepareForSegue”代码吗?

最佳答案

尝试在发送数组时复制数组,您确定 -(IBAction)submit.. 正在被调用吗?可能会被释放?

我认为提交按钮也具有执行 segue 的操作。我不确定执行顺序。尝试从准备转场调用 Submit 方法,而不是从按钮调用。这样你就可以保证它首先被调用。

关于ios - 传递 NSArray 使数组为空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19965044/

相关文章:

objective-c - 取消 RAC 命令执行

objective-c - 无需子类化即可向 UIControl 添加属性

c - 使用 fscanf() 和数组

iphone - 你如何创建一个凸起的标签栏项目,就像在 Instagram 中发现的那样?

jquery - iOS 上的 Safari 无法 Ajax 上传某些图像文件 : "Cannot connect to server" (but the website works ok)

ios - FB IOS SDK是否提供检查访问 token 有效性的方法?

iphone - 有什么方法可以在不捕获整个屏幕的情况下将 UIView 保存为 png

java - 寻找一种有效的方法来对 3D 数组的周围值求和

c - C语言如何将文本读入数组

ios - 在 XCUITest 中读取本地 JSON 文件