title: Can you detect when a UIViewController has been dismissed or popped?
body: <p>I have some cleanup that needs to be performed in a shared resource any time one of my view controllers is dismissed/popped/unloaded?  This could either be when the user hits the back button on that individual screen or if a call to popToRootViewController is made (in which case, I would ideally be able to clear up every controller that was popped.)</p>
  
  <p>The obvious choice would be to do this in viewDidUnload, but of course, that isn't how unload works.  Is there a way to catch all cases to where the ViewController is removed from the stack?</p>
  
  <p>edit:Forgot to mention that I am doing this using Xamarin so that may or may not impact the answers.</p>