One of the easiest ways to start hunting down memory leaks is to see if a view controller is not being deallocated. Most common reason being an object stored in an instance variable is (in)directly holding a reference the view controller.
Here's a tip I picked up from @0xced:
Create an Xcode symbolic breakpoint and set the following values:
- Add an
- Action value:
--- dealloc @(id)[$arg1 description]@ @(id)[$arg1 title]@
- Add another
Sound: Choose a sound
If you pop or dismiss a view controller and don't hear the sound, there's a leak.