title: viewController not being removed properly?
body: <p>In my viewController I have an <code>NSFetchedResultsController</code> for populating a <code>tableView</code>. In the <code>viewDidLoad()</code> I'm saving the current time to a variable, then printing it out in the <code>NSFetchedResultsController's</code> <code>didChange AnyObject</code> callback:</p>
  <pre><code>class MyViewController: UIViewController, NSFetchedResultsControllerDelegate {
      var date: Date!
      var fetchedResultsController: NSFetchedResultsController&lt;Event&gt;!
     
      override func viewDidLoad() {
          super.viewDidLoad()
          date = Date()
      }
  
      func controller(_ controller: NSFetchedResultsController&lt;NSFetchRequestResult&gt;, didChange anObject: Any, at indexPath: IndexPath?, for type: NSFetchedResultsChangeType, newIndexPath: IndexPath?) {
          switch type {
          case .insert:
              feedTable.insertRows(at: [newIndexPath!], with: .fade)
              print(date)
          default:
              break
      }
  }
  </code></pre>
  <p>I noticed that when I leave this view then come back this callback is called twice and the date from the first time I was in the view is printed as well as the new one:</p>
  <blockquote>
  <p>2017-05-14 18:29:42 +0000</p>
  <p>2017-05-14 18:30:01 +0000</p>
  </blockquote>
  <p>I'm leaving the view in a seperate function like this:</p>
  <pre><code>let storyboard = UIStoryboard(name: &quot;Main&quot;, bundle: nil)
  let controller = storyboard.instantiateViewController(withIdentifier: &quot;HomePage&quot;) as? HomeVC
  controller?.managedObjectContext = self.managedObjectContext
  self.present(controller!, animated: true, completion: nil)
  </code></pre>
  <p>Why does this <code>MyViewController</code> seem to stick around even after I leave it and come back? Is the way I'm leaving it not removing it properly?</p>