[ASCellNode] Ensure we don't trigger the UIViewController to be created early if we are wrapping one.

This commit is contained in:
Scott Goodson 2016-01-14 23:28:15 -08:00
parent affb786a14
commit 6741ae658e

View File

@ -20,7 +20,6 @@
@interface ASCellNode () @interface ASCellNode ()
{ {
ASDisplayNodeDidLoadBlock _nodeLoadedBlock;
UIViewController *_viewController; UIViewController *_viewController;
ASDisplayNode *_viewControllerNode; ASDisplayNode *_viewControllerNode;
} }
@ -49,15 +48,13 @@
ASDisplayNodeAssertNotNil(viewControllerBlock, @"should initialize with a valid block that returns a UIViewController"); ASDisplayNodeAssertNotNil(viewControllerBlock, @"should initialize with a valid block that returns a UIViewController");
if (viewControllerBlock) { if (viewControllerBlock) {
_viewController = viewControllerBlock();
__weak UIViewController *weakViewController = _viewController;
_viewControllerNode = [[ASDisplayNode alloc] initWithViewBlock:^UIView *{ _viewControllerNode = [[ASDisplayNode alloc] initWithViewBlock:^UIView *{
return weakViewController.view; _viewController = viewControllerBlock();
return _viewController.view;
} didLoadBlock:didLoadBlock]; } didLoadBlock:didLoadBlock];
[self addSubnode:_viewControllerNode]; [self addSubnode:_viewControllerNode];
_nodeLoadedBlock = didLoadBlock;
} }
return self; return self;