[ASViewController] Ensure we retain a reference to the UIVC object returned by the initWithViewController: block.

This commit is contained in:
Scott Goodson 2016-03-02 22:38:56 -08:00
parent edd567a91d
commit cc07d77d68

View File

@ -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];