以下に示す Google マップ アプリケーション ( source )によく似た、周辺機器のスライド イン/スライド アウトの右側のビュー コントローラーを使用するマッピング アプリケーションがあります。

私のアプリでは、このスライド アウト ビューにweak delegateプロパティがあり、マップ ビュー コントローラーをデリゲートに設定します (例: mapOptionsViewController.delegate = selfinside からmyMapViewController)。また、他の種類の情報を表示するために右側のスライドを使用したいと考えています。たとえば、ユーザーが地図上で選択したレストランのメニューを表示しますmenuViewController。
私の質問は、 をスワップアウトする場合mapOptionsViewController、fromも手動でアウトするmenuViewController必要がありますか? 私の懸念は、 に切り替えたときに が解放/破棄されたとしても、まだ古い を指しているため、のメモリがヒープから解放されないことです。nilmapOptionsViewController.delegatemyMapViewControllermapOptionsViewControllermenuViewControllermyMapViewControllermapOptionsViewController.delegatemapOptionsViewController.delegate
したがって、基本的に、別のビュー コントローラー(マップ オプション)fooのデリゲートであるオブジェクト ビュー コントローラー (私のマップ) があり、そのような場合、 (レストラン メニュー) に切り替えると、から設定する必要がありますか? または、に置き換えられた結果、View Controller が含まれている場合はnilになりますか?barbar.delegate = foobarbazbar.delegate = nilfoobardelegatedelegatebaz