title: prepareForSegue and delegates
body: <p>I have an application with two segues. In one of the segues, the current view controller becomes a delegate and the other does not. </p>
  
  <pre><code>- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
  {
      if ([segue.identifier isEqualToString:@"MoreOptions"]) {
          UINavigationController *navigationController = segue.destinationViewController;
          MoreOptionsViewController *controller = (MoreOptionsViewController *)navigationController.topViewController;
          controller.delegate = self;
      } else if ([segue.identifier isEqualToString:@"FullStoryView"]) {
          SingleStoryViewController *detailViewController = segue.destinationViewController;
          detailViewController.urlObject = sender;
      }
  }
  </code></pre>
  
  <p>All of this is working fine, but I would like to try and understand the code better. What I don't understand is that I have to get a reference to the MoreOptionsViewController by grabbing it from  navigationController.topViewController rather than simply getting it from segue.destinationViewController like I do in the second if condition. Is it because I'm setting the current view controller (self) as the delegate? Again, I'm not trying to solve a problem, just trying to get a better understanding of what's going on.</p>