0

设想:

  • 以 UINavigationController 作为初始控制器的情节提要。
  • MainVC(导航控制器的根 vc)需要用户在地图上选择一个位置。
  • MainVC 推送一个包含 MapKit 地图的 VC,并将其自身添加为用户选择位置时 MapVC 发出的通知的侦听器。
  • MapKit 是一个内存猪,我们都知道。iOS 给我一个内存警告,我做了所有需要做的事情,然后 iOS 释放它可以释放的所有东西,包括 MainVC。
  • MapVC 发出通知,但没有人收听它。用户选择的位置丢失了,就像雨中的眼泪。

鉴于此,在返回 MainVC 时传递该位置数据的可靠方法是什么?我什至想把它写到 ~/tmp (这是我在处理像图像这样的大量数据时用来做的事情),但这似乎是在浪费机器。没有我可以挂钩的机制,比如导航控制器返回到前一个 VC 时触发的事件?就像,可以访问类似 prepareForSegue: 但相反的方向会很好。

编辑我试着去委派,但似乎我的代表还是被释放了。我是否坚持必须写入〜/ tmp?

4

1 回答 1

0

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

于 2012-02-20T15:36:18.777 回答