I have a UIViewController that is pushed onto a container controller and then popped off, and using the allocations instrument, I can see that the view controller is destroy
My problem was delegates.
Check your delegates! The delegate property should have weak specified:
weak
weak var delegate: SomeProtocol?
or
@property (weak, nonatomic) id<SomeProtocol> delegate;