はじめてこの場を使用させていただきます。

現在、xcode6 objective-c を使用してゲームの開発を行っているのですが

メモリの解放がうまくいきません。

viewcontroller A から viewcontroller B への遷移後

dismissViewControllerAnimatedを B で使用しているのですが

viewcontroller A に戻った後もメモリは変わっていません。

インスタンス宣言したものを全てremoveFromSuperviewしても
全体の2割程度しか解放されませんでした。

dismissViewControllerAnimatedを使用し、BからAへと戻った後に
再度AからBへと遷移すると、
一部の変数の中身が残っている状態で様々な箇所でbad_accessが出てしまいます。

dismissViewControllerAnimatedを使用したときに
viewcontroller B の中身を全てを解放し、
再度、A から B へと遷移後、1から読み込みをしたいのですが
なんとかならないでしょうか・・・。

説明不足かもしれませんが、よろしくおねがいします。