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