При нехватке памяти, свойство 'view' вашего контроллера будет автоматически установлено равным nil, если его нет на экране. Затем представление будет автоматически загружаться снова, когда это необходимо - и в это время должен вызываться viewDidLoad.
Если ваш контроллер представления сохраняет какие-либо подпредставления представления верхнего уровня, то вы можете переопределить setView: метод контроллера представления, проверить, задано ли для представления значение nil, и, если это так, выпустить подпредставления, которые были у вас. удерживающий. В противном случае представление верхнего уровня может никогда не быть освобождено.
- (void)setView:(UIView *)view
{
[super setView:view];
if (view == nil)
{
// Release other views
// self.someView = nil;
}
}