在两个视图控制器之间转换时,将NSArray存储到文件中

时间:2014-03-31 15:26:40

标签: ios objective-c

我正在开发一个iPhone应用程序,我的代码中有两个视图控制器,让它们是ViewControllerA(VCA)和ViewControllerB(VCB),VCA可以用segue推送到VC​​B,VCB可以返回到VCA。以下是我的VCA中的代码:

- (void) prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
    if ([segue.identifier isEqualToString:@"placePiece"]) {
        VCB *vcb = (VCB*) segue.destinationViewController;
        vcb.shipsOnBoard = indexRecorder;
    }
}

到达VCB后,我会在那里做点什么。我想做的是在VCB中保存数据,我想在用户单击VCB左上角的后退按钮时开始保存,我试图在VCB的prepareForSegue方法中执行此操作,但似乎没有调用该方法。此外,我还想在用户再次访问VCB时开始读取数据,我想知道每次用户从VCA转到VCB时会调用哪种方法,反之亦然,这样我就可以在那里进行读写操作。感谢。

1 个答案:

答案 0 :(得分:1)

一般来说,当您按下视图控制器然后从那里返回到前一个视图控制器时,您没有使用segue,因此不会调用prepareForSegue。相反,您应该考虑使用willMoveToParentViewController:。当父视图控制器设置为nil时,将从堆栈中弹出当前视图控制器。此时,您可以调用父视图控制器上的方法,以使用状态信息更新它。

创建和显示VCB时也会调用

willMoveToParentViewController:(在segue期间添加到堆栈中)。

另一种方法是将VCA设置为VCB的delegate,并在相关更改后让VCB更新delegate