title: When set objects to nil when using ARC?
body: <p>I'm on an iPhone project using <code>ARC</code>. The application is a navigation based one, using <code>UINavigationController</code>. </p>
  
  <p>The typical use case is to go from a "main" <code>UIViewController</code> to a "secondary" <code>UIViewController</code> multiple times, maybe up to 100 times. The secondary controller has a lot of static, local PNG images, some of them repeated.</p>
  
  <p>I'm profiling the application and I can see how, when going from "main" to "secondary" controller, it allocates about 0.8 MB, but, when pressing the back button, it does not free the memory. So, when I go again to the secondary controller, other 0.8 MB are allocated, and so on...</p>
  
  <p>Debugging, I noticed that <code>viewDidUnload:</code> method of the secondary <code>UIViewController</code> is never being called, but I also read that it's that method where I'm supposed to set to nil the references kept by the controller. Doing so in <code>viewDidDisappear:</code> does not help, because I want that to occur only when pressing the back button, that is, when popping the controller from the stack (the <code>viewDidDisappear:</code> method would be also called when pushing another controller on the stack).</p>
  
  <p>So the questions are: is there where I have to do that? Can I force that method to be called? Is that behavior OK (profiling, the allocations went up to 20MB after some cycles of "main" -> "secondary" -> "main" -> "secondary" -> ...) ??</p>
  
  <p>Thank you all in advance</p>