В дополнение к тому, что сказал Шубханк, убедитесь, что вы уравновешиваете удержания и освобождения в этих методах внутри самого UIViewController:
viewDidLoad
& viewDidUnload
viewWillAppear:
&viewWillDisappear:
Также убедитесь, что вы освобождаете любое свойство с атрибутом «retain» или «copy» в вашем методе dealloc.
Пока вы все правильно очищаете в deallocи ваш счет сохранения / выпуска для самого UIViewController сбалансирован (см. ответ Шубханка), у вас не возникнет проблем, и все будет выпущено, как и ожидалось.