我有一个使用中/滑动出来的右手视图控制器的外围滑动,就像下面(所示的谷歌地图应用程序的映射应用程序源 ):
在我的应用程序,这滑出视图具有weak
delegate
属性,我设置地图视图控制器为所述代表(例如mapOptionsViewController.delegate = self
从内侧myMapViewController
)。 我还希望,虽然用右手滑动并鉴于其他种类的信息。 例如显示用于使用户选择地图,关于餐馆的菜单menuViewController
。
我的问题是,如果我换出mapOptionsViewController
为menuViewController
,做我需要手动nil
出mapOptionsViewController.delegate
从myMapViewController
也? 我担心的是,即使mapOptionsViewController
被dealloc'd /设置当我做开关的menuViewController
,因为myMapViewController
仍然指向旧mapOptionsViewController.delegate
, mapOptionsViewController.delegate
的内存不会被从堆中释放。
所以基本上,如果你有一个对象视图控制器foo
(我的地图),这是另一种视图控制器的委托bar
(图选项),这样bar.delegate = foo
,然后切换出bar
的baz
(餐厅的菜单)我需要设置bar.delegate = nil
,从foo
。 或者,将bar
零出delegate
当视图控制器delegate
包含在被dealloc'd与被替换的结果baz
?