title: Table not reloading in another TabBar ViewController
body: <p>I'm using a TabBar Controller with 2 tabs - Bills Reminder, Bills Paid.</p>
  
  <p>After setting the status of the records in Bills Reminder, and I went into Bills Paid tab, it isn't showing the bills that have been marked as paid.</p>
  
  <p>I quit the app and relaunch it , then went into Bills Paid tab and it is displaying all the bills that has been paid correctly now. </p>
  
  <p>I'm using viewWillAppear in my Bills Paid View controller.</p>
  
  <p>BillsPaidTableViewController.swift</p>
  
  <pre><code>class BillsPaidTableViewController: UITableViewController, NSFetchedResultsControllerDelegate  {
  
      var fetchResultController:NSFetchedResultsController!
  
      override func viewWillAppear(animated: Bool) {
          println("Hey I'm loading bills paid")
  
          self.tableView.reloadData()
          super.viewWillAppear(false);
  
          self.tableView.tableFooterView = UIView(frame: CGRectZero)
      }
  
      /*
      comments: viewDidLoad will only load once and will not load after subsequent tapping on the the tab
  
      override func viewDidLoad() {
          super.viewDidLoad()
  
          // Uncomment the following line to preserve selection between presentations
  
          self.tableView.tableFooterView = UIView(frame: CGRectZero)
      }*/ 
  
      override func didReceiveMemoryWarning() {
          super.didReceiveMemoryWarning()
          // Dispose of any resources that can be recreated.
      }
  
      // MARK: - Table view data source
  
      override func numberOfSectionsInTableView(tableView: UITableView) -&gt; Int {
          // #warning Potentially incomplete method implementation.
          // Return the number of sections.
          return self.fetchedResultsController.sections?.count ?? 0
  
      }
  
      override func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -&gt; Int {
          // #warning Incomplete method implementation.
          // Return the number of rows in the section.
          let sectionInfo = self.fetchedResultsController.sections![section] as! NSFetchedResultsSectionInfo
          return sectionInfo.numberOfObjects
  
      }
  
  
      var fetchedResultsController: NSFetchedResultsController {
          if _fetchedResultsController != nil {
              return _fetchedResultsController!
          }
  
          let fetchRequest = NSFetchRequest()
          // Edit the entity name as appropriate.
          if let managedObjectContext = (UIApplication.sharedApplication().delegate as! AppDelegate).managedObjectContext {
              let entity = NSEntityDescription.entityForName("Bills", inManagedObjectContext: managedObjectContext)
              fetchRequest.entity = entity
  
              // Set the batch size to a suitable number.
              fetchRequest.fetchBatchSize = 20
  
              // Edit the sort key as appropriate.
  
              let predicate = NSPredicate(format: " paid == 1 ")
              fetchRequest.predicate = predicate
  
              // Edit the section name key path and cache name if appropriate.
              // nil for section name key path means "no sections".
              let aFetchedResultsController = NSFetchedResultsController(fetchRequest: fetchRequest, managedObjectContext: managedObjectContext, sectionNameKeyPath: nil, cacheName: nil)
              aFetchedResultsController.delegate = self
              _fetchedResultsController = aFetchedResultsController
  
              var error: NSError? = nil
              if !_fetchedResultsController!.performFetch(&amp;error) {
                  // Replace this implementation with code to handle the error appropriately.
                  // abort() causes the application to generate a crash log and terminate. You should not use this function in a shipping application, although it may be useful during development.
                  //println("Unresolved error \(error), \(error.userInfo)")
                  abort()
  
              }
          }
  
          return _fetchedResultsController!
      }
  
      var _fetchedResultsController: NSFetchedResultsController? = nil
  
      override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -&gt; UITableViewCell {
          let cell = tableView.dequeueReusableCellWithIdentifier("BillPaidCell", forIndexPath: indexPath) as! BillPaidTableViewCell
  
          // Configure the cell...
          self.configureCell(cell, atIndexPath: indexPath)
  
          return cell
      }
  
      func configureCell(cell: BillPaidCell, atIndexPath indexPath: NSIndexPath) {
  
          let object = self.fetchedResultsController.objectAtIndexPath(indexPath) as! NSManagedObject
  
          cell.billName?.text = object.valueForKey("name")!.description
          cell.billAmt?.text = convertToDecimal( (object.valueForKey("amount")!.description as NSString).doubleValue , 2, 2)
          cell.dateDue?.text = object.valueForKey("date_due")!.description
          cell.datePaid?.text = object.valueForKey("date_paid")!.description
  
      }
  }
  </code></pre>
  
  <p>Each time, I click on the Bills Paid tab, it will show the message "Hey I'm loading bills paid", no problem with this part. However, the table isn't loading although I'm using .reloadData().</p>
  
  <p>Where did I go wrong with this part?</p>