我有一个使用外围滑入/滑出右手视图控制器的地图应用程序,就像下面显示的谷歌地图应用程序(来源):

在我的应用程序中,这个滑出视图有一个weak delegate属性,我将地图视图控制器设置为委托(例如mapOptionsViewController.delegate = self从内部myMapViewController)。不过,我也希望在视图中使用右侧幻灯片来获取其他类型的信息。例如,显示用户在地图上选择的餐厅的菜单menuViewController。
我的问题是,如果我换成mapOptionsViewController,menuViewController我还需要手动换nil出mapOptionsViewController.delegatefrommyMapViewController吗?我担心的是,即使mapOptionsViewController在我切换到时被释放/处理menuViewController,因为myMapViewController仍然指向旧的mapOptionsViewController.delegate,mapOptionsViewController.delegate的内存不会从堆中释放。
所以基本上,如果你有一个对象视图控制器foo(我的地图),它是另一个视图控制器bar(地图选项)的代表bar.delegate = foo,然后你切换到bar(baz餐厅菜单),我需要bar.delegate = nil从foo. 或者,bar当delegate视图控制器delegate包含在由于被替换为baz?