【发布时间】:2013-03-13 21:17:40
【问题描述】:
我将视图控制器嵌入到具有一个属性(非原子强 NSMutableArray *myData)的导航控制器中,当我推送第二个视图时,我还使用此方法将数组数据传递给该视图:
-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
if ([[segue identifier] isEqualToString:@"secondView"]) {
SecondViewController *svc = [segue destinationViewController];
svc.myDataInSecondView = self.myData;
}
我的问题是:为什么如果我更改 myDataInSecondView 数组中的任何值,然后我会回到第一次查看 myData 数组中的值也被更改?我一直认为我必须使用自定义协议和委托将任何数据传递回之前的视图。
【问题讨论】:
-
如果您将指向数据的指针传递给另一个控制器并且更改了数据,那么它会同时更改。
-
在这种情况下是的,但这取决于该属性是如何声明的
-
如果我将第一个视图中的属性声明为弱而不是强,这会有所不同吗?如果它是弱属性并且我将移至第二个视图,myData 对象会被释放吗?
标签: ios objective-c xcode delegates uinavigationcontroller