title: __weak self in blocks
body: <p>I have __weak reference to self. Do I need __weak reference for controller2 and controller 3 which are also referenced in the competition block ?</p>
  
  <pre><code>UIStoryboard *sb = [UIStoryboard storyboardWithName:@"Main" bundle:nil];
  
  id controller1 = [sb instantiateViewControllerWithIdentifier:@"controller1"];
  
  id controller2 = [sb instantiateViewControllerWithIdentifier:@"controller2"];
  
  id controller3 = [sb instantiateViewControllerWithIdentifier:@"controller3"];
  
  __weak typeof(self) weakSelf = self;
  
  [self presentViewController:controller1 animated:YES completion:^{
  
      [(UINavigationController *)weakSelf.parentViewController setViewControllers:@[controller2, controller3] animated:NO];
  
  }];
  </code></pre>
  
  <p><strong>EDIT</strong> what about the following code?  Does the block in the following code require a weak reference to self?</p>
  
  <pre><code>typedef void(^MyCustomBlock)(void);
  
  @property (strong, readwrite, nonatomic) MyCustomBlock customBlock;
  
  - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
      __weak typeof(self) weakSelf = self;
      self.customBlock = ^{
          [(UINavigationController *)weakSelf.parentViewController setViewControllers:@[controller2, controller3] animated:NO];
      };
      [self presentViewController:controller1 animated:YES completion:self.customBlock];
  }
  </code></pre>