title: Calling presentViewController from viewDidAppear causes ViewController to be leaked
body: <p>I have three UIViewController derived class instances A, B, C</p>
  
  <p>A: is a view with a single button which is linked to buttonPressed and the following nonstandard code</p>
  
  <pre><code>-(IBAction)buttonPressed {
      B = new local object of class B code left out for brevity
      B.dismissDelegate = self;
      [self presentViewController:B
                         animated:NO
                       completion:nil];
  }
  - (void)dismiss {
      [self dismissViewControllerAnimated:NO completion:nil];
  }
  </code></pre>
  
  <p>B: is a view that has the following nonstandard code</p>
  
  <pre><code>- (void)viewDidAppear {
      C = new local object of class C code left out for brevity
      C.dismissDelegate = self;
      [self presentViewController:C
                         animated:NO
                       completion:nil];       
  }
  - (void)dismiss {
      [self.dismissDelegate dismiss];
  }
  </code></pre>
  
  <p>C: is a view that has one button linked to buttonPressed</p>
  
  <pre><code>-(IBAction)buttonPressed {
      [self.dismissDelegate dismiss];
  }
  </code></pre>
  
  <p>Pressing the button on A then the button on C repeatedly causes multiple copies of C to be allocated which are never released. However if B is removed and A just launches C the copies of C are released.</p>
  
  <p>ARC is turned on.</p>