title: How to reload tableView after dismissing a UIViewController
body: <p>I use the following method to present a UIViewController named DictAddSubSecondCell:</p>
  
  <pre><code>// UIViewControler 1
  - (IBAction)addWord:(id)sender{
  dictAddSubSecondCellController = [[DictAddSubSecondCell alloc] initWithNibName:@"DictAddSubSecondCell" bundle:nil];
  [self presentModalViewController:dictAddSubSecondCellController animated:YES];
  [dictAddSubSecondCellController release];
  }
  </code></pre>
  
  <p>and when I click the button in DictAddSubSecondCell:</p>
  
  <pre><code>- (IBAction)dismissAction:(id)sender{ 
  [self dismissModalViewControllerAnimated:YES];
  }
  </code></pre>
  
  <p>the tableView at UIViewControler 1 didn't reload it's data, but I added a method in viewWillApear method:</p>
  
  <pre><code>[self.table reloadData];
  </code></pre>
  
  <p>but it still not work. I have no idea about this. Is there any suggestions for me? thanks.</p>
  
  <p>Here is the full source code of UIViewcontroller 1:</p>
  
  <pre><code>//
  //  DictAddSubSecond.m
  //
  //  Created by Samuel Armstrong on 4/8/12.
  //  Copyright 2012 __MyCompanyName__. All rights reserved.
  //
  
  #import "DictAddSubSecond.h"
  #import "DictionaryList.h"
  
  @implementation DictAddSubSecond
  @synthesize dictList, table, editButton;
  @synthesize dictAddSubSecondCellController;
  
  - (IBAction)addWord:(id)sender
  {
      dictAddSubSecondCellController = [[DictAddSubSecondCell alloc] initWithNibName:@"DictAddSubSecondCell" bundle:nil];
      [self presentModalViewController:dictAddSubSecondCellController animated:YES];
      [dictAddSubSecondCellController release];
  }
  
  - (IBAction)toggleEdit {
      [self.table setEditing:!self.table.editing animated:YES];
  
      if (self.table.editing) {
          [editButton setTitle:@"Done"];
          [editButton setStyle:UIBarButtonItemStyleDone];
      }
      else {
          [editButton setTitle:@"Edit"];
          [editButton setStyle:UIBarButtonItemStyleBordered];
  
      }
  }
  
  - (IBAction)dismissAction:(id)sender
  {
      [self dismissModalViewControllerAnimated:NO];
  }
  
  - (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
  {
      self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
      if (self) {
          // Custom initialization
      }
      return self;
  }
  
  - (void)didReceiveMemoryWarning
  {
      // Releases the view if it doesn't have a superview.
      [super didReceiveMemoryWarning];
  
      // Release any cached data, images, etc that aren't in use.
  }
  
  #pragma mark - View lifecycle
  
  - (void)refreshTableData
  {
      NSString *path = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0];
      NSString *file = [path stringByAppendingPathComponent:@"dictWithWords.tmp"];
      if (dictList == nil) {
          NSMutableArray *array = [[NSMutableArray alloc] initWithContentsOfFile:file];
          if ([array objectAtIndex:0] != nil) {
              dictList = [[NSMutableArray alloc] initWithCapacity:1];
              self.dictList = array;
              [array release];
          }
          else
          {
              dictList = [[NSMutableArray alloc] initWithCapacity:1];
          }
      }
      [self.table reloadData];
  
  }
  
  - (void)viewWillAppear:(BOOL)animated
  {
      [super viewWillAppear:animated];
  
      [self refreshTableData];
  }
  
  - (void)someMethodToReloadTable:(NSNotification *)notification 
  {
      [table reloadData];  
  }
  
  
  - (void)viewDidLoad
  {
      [super viewDidLoad];
      // Do any additional setup after loading the view from its nib.
      [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(someMethodToReloadTable) name:@"reloadTable" object:nil];
  
  
  }
  
  - (void)viewDidUnload
  {
      [super viewDidUnload];
      // Release any retained subviews of the main view.
      // e.g. self.myOutlet = nil;
      [[NSNotificationCenter defaultCenter] removeObserver:self name:@"reloadTable" object:nil];
  
  
  }
  
  - (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
  {
      // Return YES for supported orientations
      return (interfaceOrientation == UIInterfaceOrientationPortrait);
  }
  
  
  
  
  #pragma mark -
  #pragma mark Table View Data Source Methods
  
  - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
  {
      return [dictList count];
  }
  
  
  - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
  {
      static NSString *MoveMeCellIdentifier = @"MoveMeCellIdentifier";
      UITableViewCell *cell = [self.table dequeueReusableCellWithIdentifier:MoveMeCellIdentifier];
  
      if (cell == nil) {
          cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:MoveMeCellIdentifier] autorelease];
  
          //A Boolean value that determines whether the cell shows the reordering control.
          cell.showsReorderControl = YES;
  
      }
      NSUInteger row = [indexPath row];
  
      cell.textLabel.text = [dictList objectAtIndex:row];
      cell.accessoryType = UITableViewCellAccessoryDisclosureIndicator;
      return cell;
  }
  
  #pragma mark -
  #pragma mark Table View Delegate Methods
  - (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath
  {
      NSUInteger row = [indexPath row];
      [self.dictList removeObjectAtIndex:row];
      [tableView deleteRowsAtIndexPaths:[NSArray arrayWithObject:indexPath] 
                       withRowAnimation:UITableViewRowAnimationMiddle];
  }
  
  
  - (UITableViewCellEditingStyle)tableView:(UITableView *)tableView editingStyleForRowAtIndexPath:(NSIndexPath *)indexPath
  {
      return UITableViewCellEditingStyleDelete;
  }
  
  
  
  
  // Asks the data source whether a given row can be moved to another location in the table view.
  - (BOOL)tableView:(UITableView *)tableView canMoveRowAtIndexPath:(NSIndexPath *)indexPath
  {
      return YES;
  }
  
  
  //Tells the data source to move a row at a specific location in the table view to another location.
  - (void)tableView:(UITableView *)tableView moveRowAtIndexPath:(NSIndexPath *)fromIndexPath toIndexPath:(NSIndexPath *)toIndexPath
  {
      NSUInteger fromRow = [fromIndexPath row];
      NSUInteger toRow = [toIndexPath row];
  
      id object = [[dictList objectAtIndex:fromRow] retain];
      [dictList removeObjectAtIndex:fromRow];
      [dictList insertObject:object atIndex:toRow];
      [object release];
  }
  
  
  @end
  </code></pre>