title: Multiple views and UITables from one source, how to populate them?
body: <p>Okay I have three UITableViews that I need to all originate from the same viewcontroller code. I need to populate them all from the <code>.m</code> file of <code>AG_ViewController</code>.</p>
  
  <p><strong>AG_ViewController.h</strong></p>
  
  <pre><code>    #import &lt;UIKit/UIKit.h&gt;
  
      @interface AG_ViewController : UIViewController &lt;UITableViewDelegate, UITableViewDataSource&gt;{
  
          IBOutlet UITableView *yesterdayTableView;
          IBOutlet UITableView *tomorrowTableView;
          IBOutlet UITableView *tableView;
          IBOutlet UILabel *todaysDate;
          IBOutlet UILabel *subtractDate;
          IBOutlet UILabel *addDate;
      }
      @end
  </code></pre>
  
  <p><strong>AG_ViewController.m</strong></p>
  
  <pre><code>#import "AG_ViewController.h"
  #import "AG_Storage.h"
  #import "AG_AddItemViewController.h"
  
  @interface AG_ViewController ()
  
  @property NSMutableArray *mainArray;
  @property NSMutableArray *yesterdayArray;
  @property NSMutableArray *tomorrowArray;
  @property NSDate *todayDate;
  @property NSDate *tomorrowsDate;
  @property NSDate *yesterdaysDate;
  @property int counter;
  
  @property(weak,nonatomic)IBOutlet UIButton *yesterdayButton;
  @property(weak,nonatomic)IBOutlet UIButton *tomorrowButton;
  @property(weak,nonatomic)IBOutlet UIButton *backButton;
  
  @end
  
  @implementation AG_ViewController
  
  - (void)viewDidLoad
  {
      [super viewDidLoad];
      self.mainArray = [[NSMutableArray alloc] init];
      self.yesterdayArray = [[NSMutableArray alloc]init];
      self.tomorrowArray = [[NSMutableArray alloc]init];
      [self loadInitialData];
  }
  
  - (void)loadInitialData
  {
      // Do any additional setup after loading the view, typically from a nib.
  
  
      //NSDate Info
  
      NSTimeInterval secondsPerDay = 24 * 60 * 60;
      NSDate *today = [[NSDate alloc]init];
      NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];
      [dateFormat setDateFormat:@"MMMM dd, yyyy"];
  
      self.todayDate = today;
      self.tomorrowsDate = [today dateByAddingTimeInterval: secondsPerDay];
      self.yesterdaysDate = [today dateByAddingTimeInterval: -secondsPerDay];
  
      NSString *todayString = [dateFormat stringFromDate:self.todayDate];
      NSString *tomorrowString = [dateFormat stringFromDate:self.tomorrowsDate];
      NSString *yesterdayString = [dateFormat stringFromDate:self.yesterdaysDate];
  
      todaysDate.text = todayString;
      addDate.text = tomorrowString;
      subtractDate.text = yesterdayString;
  
      AG_Storage *theDateToday = [[AG_Storage alloc]init];
      theDateToday.todaysDate = self.todayDate;
  
  
  
      //Populate mainArray
      for (int x= 0; x!=-99; x++) {
          //get ready to call the NSUserDefaults
  
  
          NSData *data = [[NSUserDefaults standardUserDefaults] objectForKey:[NSString stringWithFormat:@"%@%d",todayString,x]];
          AG_Storage *someStorageObject = [NSKeyedUnarchiver unarchiveObjectWithData:data];
          AG_Storage *storeToArray = [[AG_Storage alloc]init];
          storeToArray.itemName = someStorageObject;
  
  
          if (someStorageObject != nil) {
              //add the data to the mainArray and update counter
              [self.mainArray addObject:storeToArray];
              self.counter++;
          }
          else if ((someStorageObject == nil) &amp;&amp; (x==99)){
              //exit when done
              x=-100;
  
  
          }
  
      }
  
  
      //Populate yesterdayArray
      for (int x= 0; x!=-99; x++) {
          //get ready to call the NSUserDefaults
  
  
          NSData *data = [[NSUserDefaults standardUserDefaults] objectForKey:[NSString stringWithFormat:@"%@%d",yesterdayString,x]];
          AG_Storage *someStorageObject = [NSKeyedUnarchiver unarchiveObjectWithData:data];
          AG_Storage *storeToArray = [[AG_Storage alloc]init];
          storeToArray.itemName = someStorageObject;
  
  
          if (someStorageObject != nil) {
              //add the data to the mainArray and update counter
              [self.yesterdayArray addObject:storeToArray];
              self.counter++;
          }
          else if ((someStorageObject == nil) &amp;&amp; (x==99)){
              //exit when done
              x=-100;
  
  
          }
  
      }
  
  
      //Populate tomorrowArray
      for (int x= 0; x!=-99; x++) {
          //get ready to call the NSUserDefaults
  
  
          NSData *data = [[NSUserDefaults standardUserDefaults] objectForKey:[NSString stringWithFormat:@"%@%d",tomorrowString,x]];
          AG_Storage *someStorageObject = [NSKeyedUnarchiver unarchiveObjectWithData:data];
          AG_Storage *storeToArray = [[AG_Storage alloc]init];
          storeToArray.itemName = someStorageObject;
  
  
          if (someStorageObject != nil) {
              //add the data to the mainArray and update counter
              [self.tomorrowArray addObject:storeToArray];
              self.counter++;
          }
          else if ((someStorageObject == nil) &amp;&amp; (x==99)){
              //exit when done
              x=-100;
  
  
          }
  
      }
  }
  
  - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{
  
      if(tableView == tomorrowTableView){
          return [self.tomorrowArray count];
      }
      else if(tableView == yesterdayTableView)
          return [self.yesterdayArray count];
      else
          return [self.mainArray count];
  }
  
  
  - (UITableViewCell *)tableView:(UITableView *)tableViewer cellForRowAtIndexPath:(NSIndexPath *)indexPath{
  
      UITableViewCell *cell = [tableViewer dequeueReusableCellWithIdentifier:@"thisCell"];
      AG_Storage *toDoItem = [self.mainArray objectAtIndex:indexPath.row];
      cell.textLabel.text = toDoItem.itemName;
  
  
  
      if (toDoItem.completed) {
          cell.accessoryType = UITableViewCellAccessoryCheckmark;
      }
      else{
          cell.accessoryType = UITableViewCellAccessoryNone;
      }
  
      return cell;
  
  }
  
  
  
  - (IBAction)unwindToList:(UIStoryboardSegue *)segue
  {
  
      NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];
      [dateFormat setDateFormat:@"MMMM dd, yyyy"];
  
      AG_AddItemViewController *source = [segue sourceViewController];
      AG_Storage *item = source.store;
  
      NSDate *dateCreated = item.creationDate;
  
  
  
      NSString *todayString = [dateFormat stringFromDate:self.todayDate];
      NSString *dateCreatedString = [dateFormat stringFromDate:dateCreated];
      NSString *tomorrowString = [dateFormat stringFromDate:self.tomorrowsDate];
      NSString *yesterdayString = [dateFormat stringFromDate:self.yesterdaysDate];
  
  
  
      //Set up file storage!
  
  
  
      if (item != nil) {
  
  
          if ([dateCreatedString isEqualToString:todayString]) {
              [self.mainArray addObject:item];
              [tableView reloadData];
  
  
              NSData *data = [NSKeyedArchiver archivedDataWithRootObject:item.itemName];
  
              [[NSUserDefaults standardUserDefaults] setObject:data forKey:[NSString stringWithFormat:@"%@%d",todayString,self.counter]];
              [[NSUserDefaults standardUserDefaults] synchronize];
  
  
          }
          else if ([dateCreatedString isEqualToString:tomorrowString]){
              [self.tomorrowArray addObject:item];
              [tableView reloadData];
  
              NSLog(@"THIS WORKED TOO :D");
          }
          else if ([dateCreatedString isEqualToString:yesterdayString]){
              [self.yesterdayArray addObject:item];
              [tableView reloadData];
  
              NSLog(@"THIS WORKED");
          }
          else{
  
          }
      }
      self.counter++;
  }
  
  - (void)didReceiveMemoryWarning
  {
      [super didReceiveMemoryWarning];
      // Dispose of any resources that can be recreated.
  }
  
  
  #pragma mark - Table view delegate
  
  - (void)tableView:(UITableView *)tableViewer didSelectRowAtIndexPath:(NSIndexPath *)indexPath
  {
      [tableViewer deselectRowAtIndexPath:indexPath animated:NO];
      AG_Storage *tappedItem = [self.mainArray objectAtIndex:indexPath.row];
      tappedItem.completed = !tappedItem.completed;
      [tableViewer reloadRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationNone];
  
  }
  
  - (BOOL)tableView:(UITableView *)tableView canEditRowAtIndexPath:(NSIndexPath *)indexPath {
      // Return YES if you want the specified item to be editable.
      return YES;
  }
  
  // Override to support editing the table view.
  - (void)tableView:(UITableView *)tableViews commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath {
  
      NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];
      [dateFormat setDateFormat:@"MMMM dd, yyyy"];
  
      NSString *todayString = [dateFormat stringFromDate:self.todayDate];
  
      if (editingStyle == UITableViewCellEditingStyleDelete) {
  
          //Delete from storage
          for (int x = 0; x!=-99; x++) {
  
  
              NSData *data = [[NSUserDefaults standardUserDefaults] objectForKey:[NSString stringWithFormat:@"%@%d",todayString,x]];
              AG_Storage *someStorageObject = [NSKeyedUnarchiver unarchiveObjectWithData:data];
              AG_Storage *storeToArray = [[AG_Storage alloc]init];
              storeToArray.itemName = someStorageObject;
  
  
  
              AG_Storage *toDoItem = [self.mainArray objectAtIndex:indexPath.row];
              NSString *compare = toDoItem.itemName;
  
              //If they equal then delete from NSUserDefaults
              if ([compare isEqualToString:someStorageObject]) {
  
                  [[NSUserDefaults standardUserDefaults]removeObjectForKey:[NSString stringWithFormat:@"%@%d",todayString,x]];
                  [[NSUserDefaults standardUserDefaults]synchronize];
                  x=-100;
              }
              else
              {
  
              }
              if (x&gt;10) {
                  x=-100;
              }
  
  
          }
  
          [self.mainArray removeObjectAtIndex:indexPath.row];
          [tableViews deleteRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationAutomatic];
  
  
      }
  }
  
  @end
  </code></pre>
  
  <p>I've only ever set up one table at a time, so how do I make <code>yesterdayTableView</code> become populated by <code>yesterdayArray</code> for instance? </p>