Memory 返回时,如何在故事板中将数据从一个视图控制器传递到另一个视图控制器?

Memory 返回时,如何在故事板中将数据从一个视图控制器传递到另一个视图控制器?,memory,ios5,mapkit,storyboard,segue,Memory,Ios5,Mapkit,Storyboard,Segue,情景: 以UINavigationController作为初始控制器的情节提要。 MainVC导航控制器的根vc需要用户在地图上选择位置。 MainVC推送一个包含MapKit映射的VC,并将其自身添加为侦听器,以便在用户选择位置时MapVC发出通知。 我们都知道,MapKit是一个记忆猪。iOS给了我一个内存警告,我做了所有需要做的事情,然后iOS释放了它可以释放的所有东西,包括MainVC。 MapVC发出了通知,但是没有人听。用户选择的位置丢失了,就像雨中的泪水。 鉴于此,在返回MainV

情景:

以UINavigationController作为初始控制器的情节提要。 MainVC导航控制器的根vc需要用户在地图上选择位置。 MainVC推送一个包含MapKit映射的VC,并将其自身添加为侦听器,以便在用户选择位置时MapVC发出通知。 我们都知道,MapKit是一个记忆猪。iOS给了我一个内存警告,我做了所有需要做的事情,然后iOS释放了它可以释放的所有东西,包括MainVC。 MapVC发出了通知,但是没有人听。用户选择的位置丢失了,就像雨中的泪水。 鉴于此,在返回MainVC时,传递位置数据的可靠方法是什么?我甚至想过把它写到~/tmp,这是我在处理大量数据(如图像)时使用的方法,但这似乎是对机器的浪费。难道没有一种机制可以让我钩住,比如当导航控制器返回到以前的VC时触发的事件吗?比如说,可以使用像prepareForSegue这样的东西:但是在相反的方向上会很好


编辑我尝试过授权,但似乎我的授权还是被释放了。我必须写信给~/tmp吗?

有关设置委托和委托协议的详细说明,请参见我的回答-

委托是一种方式-听起来您对委托对象被解除分配有问题吗?如果我对[super didReceiveMemoryWarning]进行注释,我只能补充这一点在MainVC中(现在是MapVC.delegate),它不会被释放。我认为这是一种不好的行为。好吧,代理可以工作,即使在内存警告之后也能保持工作状态。现在的迷雾是:为什么我在其中的字段和按钮不保留它们的值和状态?具体来说,我有一个UITextView,其中一些文本被清除,一些按钮应该高亮显示/启用,但它们没有。我还可以确认这些字段保持正确的值和启用/高亮显示状态,它们只是在弹出MapVC时没有显示。我不理解新问题。我有一个建议。接受这个答案,转换成ARC来解决你的记忆问题,然后用剩下的问题写一个新问题。要在Xcode中将项目转换为圆弧,请选择编辑,然后重构,最后转换为圆弧。如果转换出现问题,请首先使用文件创建快照对项目进行快照。问题是,谢谢你的帮助。