From cc07d77d68d4854a20aa6ace4d0f197f008f52e8 Mon Sep 17 00:00:00 2001 From: Scott Goodson Date: Wed, 2 Mar 2016 22:38:56 -0800 Subject: [PATCH] [ASViewController] Ensure we retain a reference to the UIVC object returned by the initWithViewController: block. --- AsyncDisplayKit/ASCellNode.m | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/AsyncDisplayKit/ASCellNode.m b/AsyncDisplayKit/ASCellNode.m index 88c64b32ad..2d82a8bfab 100644 --- a/AsyncDisplayKit/ASCellNode.m +++ b/AsyncDisplayKit/ASCellNode.m @@ -27,6 +27,7 @@ ASDisplayNodeViewControllerBlock _viewControllerBlock; ASDisplayNodeDidLoadBlock _viewControllerDidLoadBlock; ASDisplayNode *_viewControllerNode; + UIViewController *_viewController; } @end @@ -63,15 +64,16 @@ if (_viewControllerBlock != nil) { - UIViewController *viewController = _viewControllerBlock(); + _viewController = _viewControllerBlock(); _viewControllerBlock = nil; - if ([viewController isKindOfClass:[ASViewController class]]) { - ASViewController *asViewController = (ASViewController *)viewController; + if ([_viewController isKindOfClass:[ASViewController class]]) { + ASViewController *asViewController = (ASViewController *)_viewController; _viewControllerNode = asViewController.node; + [_viewController view]; } else { _viewControllerNode = [[ASDisplayNode alloc] initWithViewBlock:^{ - return viewController.view; + return _viewController.view; }]; } [self addSubnode:_viewControllerNode];