gpt4 book ai didi

ios - 在嵌入 UINavigationController 的 View Controller 之间传递数据

转载 作者:行者123 更新时间:2023-11-29 04:05:04 31 4
gpt4 key购买 nike

我将 View Controller 嵌入到具有一个属性的导航 Controller 中(非原子强 NSMutableArray *myData),当我推送第二个 View 时,我还使用此方法将数组数据传递到此 View :

    -(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {  
if ([[segue identifier] isEqualToString:@"secondView"]) {
SecondViewController *svc = [segue destinationViewController];
svc.myDataInSecondView = self.myData;
}

我的问题是:为什么如果我更改 myDataInSecondView 数组中的任何值,然后我会返回第一个查看 myData 数组中的值也发生更改?我一直认为我必须使用自定义协议(protocol)和委托(delegate)将任何数据传递回之前的 View 。

最佳答案

您这样做的方式是在 View Controller 之间共享数据的一种非常常见的方式。第二 View Controller 具有可由第一 View Controller 设置的属性。该属性是一个指针,与第一个 View Controller 中的相同。两者都指向内存中的同一位置,因此任一 View Controller 都可以更改相同的数据。

如果您不希望第二个 View Controller 更改数据,请将属性设置为copy

@property (nonatomic, copy) MyData *myData;

关于ios - 在嵌入 UINavigationController 的 View Controller 之间传递数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15396655/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com