Вы должны проверить, выпускается ли ваш GSNewAccountViewController при выпуске popoverController. Вместо того, чтобы отслеживать количество живых байтов, проверьте количество живых объектов GSNewAccountViewController. Для этого в инструменте распределения перейдите в правый верхний угол окна инструментов, отфильтруйте распределения, введя GSNewAccountViewController в текстовое поле. Затем проверьте, что происходит каждый раз, когда вы запускаете IBAction. Количество жизней должно равняться 1 при запуске IBAction и возвращаться к нулю при выпуске popoverController.
Если количество живых объектов GSNewAccountViewController никогда не обращается в ноль, вам следует проверить, не создан ли какой-либо цикл сохранения в вашем классе GSNewAccountViewController, который препятствует вызову методов dealloc и viewDidUnload. С циклом сохранения GSNewAccountViewController сохраняет объект, который, в свою очередь, сохраняет ваш GSNewAccountViewController. Так как оба сохраняют друг друга, их методы dealloc не вызываются и объекты никогда не уничтожаются.
Чтобы проверить, попробуйте создать очень простой проект iPad с кнопкой на главном экране с помощью IBAction, чтобы представить popoverController с viewController, загруженным из NIB, с простым ванильным подклассом UITableViewController. Если посмотреть на инструмент Allocations, он показывает, что подкласс создается при показе popoverController и уничтожается при закрытии popoverController.
Удачи