From 64a316679c3d9041501eb7e57e877d3d3fa82ad6 Mon Sep 17 00:00:00 2001 From: Michael Schneider Date: Wed, 23 Nov 2016 16:24:59 -0800 Subject: [PATCH] Trigger load view in ASViewController if node did load but not the view of the view controller --- AsyncDisplayKit/ASViewController.mm | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/AsyncDisplayKit/ASViewController.mm b/AsyncDisplayKit/ASViewController.mm index de8b5dc3ac..8190b9e03c 100644 --- a/AsyncDisplayKit/ASViewController.mm +++ b/AsyncDisplayKit/ASViewController.mm @@ -58,6 +58,21 @@ _selfConformsToRangeModeProtocol = [self conformsToProtocol:@protocol(ASRangeControllerUpdateRangeProtocol)]; _nodeConformsToRangeModeProtocol = [_node conformsToProtocol:@protocol(ASRangeControllerUpdateRangeProtocol)]; _automaticallyAdjustRangeModeBasedOnViewEvents = _selfConformsToRangeModeProtocol || _nodeConformsToRangeModeProtocol; + + // In case the node will get loaded + if (_node.nodeLoaded) { + // Node already loaded the view + [self view]; + } else { + // If the node didn't load yet add ourselves as on did load observer to laod the view in case the node get's loaded + // before the view controller + __weak __typeof__(self) weakSelf = self; + [_node onDidLoad:^(__kindof ASDisplayNode * _Nonnull node) { + if (weakSelf.viewLoaded == NO) { + [weakSelf view]; + } + }]; + } return self; }