情景:
- 使用UINavigationController作为初始控制器的故事板。
- MainVC(导航控制器的root vc)需要用户在地图上选择一个位置。
- MainVC推送包含MapKit映射的VC,并将自身添加为MapVC在用户选择位置时发出的通知的侦听器。
- MapKit是一个记忆猪,我们都知道。 iOS给了我一个内存警告,我做了所有需要完成的事情,然后iOS解除分配它可以解除分配的所有内容,包括MainVC。
- MapVC发出通知,但没有人听它。用户选择的位置丢失了,就像雨中的泪水一样。
鉴于此,回到MainVC时传递位置数据的可靠方法是什么?我甚至想把它写到〜/ tmp(这是我在处理图像等大量数据时要做的事情),但这似乎浪费了机器。是不是有一种我可以挂钩的机制,就像导航控制器返回上一个VC时触发的事件一样?比如,可以访问类似prepareForSegue的东西:但是在相反的方向上会很好。
编辑我尝试去代表团,但似乎我的代表仍然被释放了。我不得不写到〜/ tmp?