title: *** -[__NSArrayM objectAtIndex:]: index 0 beyond bounds for empty array. When pushing to a navigation controller
body: <p>I am writing an iPad app. I load a view in with "initWithNibName" and then trying to push the view onto the Navigation controller. </p>
  
  <pre><code> [self.navigationController pushViewController:tvc animated:YES];
  </code></pre>
  
  <p>This causes the app to crash giving the following stackTrace</p>
  
  <blockquote>
    <p>2011-09-01 12:46:06.040 PuckDragDemo[4932:f803] <strong>* Terminating app due to uncaught         exception 'NSRangeException', reason: '*</strong> -[__NSArrayM objectAtIndex:]: index 0 beyond bounds     for empty array'
        <em>*</em> First throw call stack:
        (0x1191062 0x1322d0a 0x117ddc8 0x2979 0xae95 0x449ebe 0x44a1b1 0x45bccd 0x45bebf 0x45c18b     0x45cc2f 0x45d1d6 0x45cdf4 0x13975 0x1192ed9 0x386eb2 0x386e4a 0x42c3e6 0x42c8af 0x42bb6e   0x3ac2a0 0x3ac4c6 0x392c74 0x386399 0x1d87fa9 0x11651d5 0x10ca042 0x10c892a 0x10c7dd4   0x10c7ceb 0x1d86879 0x1d8693e 0x38438b 0x1c49 0x1bc5)
        terminate called throwing an exception(gdb) bt</p>
  </blockquote>
  
  <p>I have no idea why I am getting this error when I don't have an array. my only guess is that there is an array in the background somewhere which is getting called?</p>
  
  <p>P.S the code requested</p>
  
  <pre><code>if (self.started == YES) return;
  if (self.bEditMode == YES) {
      [self go];
  } else {        
      GetReadyModalViewController *modalVC = [[GetReadyModalViewController alloc] initWithNibName:@"GetReadyModelViewController" bundle:nil];
      modalVC.delegate = self;
      [self presentModalViewController:modalVC animated:NO];
      modalVC.taskTitle.text = [self.taskPreferences objectForKey:@"title"];
      modalVC.taskDescription.text = [self.taskPreferences objectForKey:@"description"];
  }
  }
  </code></pre>