diff --git a/AsyncDisplayKit/ASDisplayNode.mm b/AsyncDisplayKit/ASDisplayNode.mm index 859e7caabf..1533893093 100644 --- a/AsyncDisplayKit/ASDisplayNode.mm +++ b/AsyncDisplayKit/ASDisplayNode.mm @@ -3876,6 +3876,9 @@ static const char *ASDisplayNodeAssociatedNodeKey = "ASAssociatedNode"; if (selfNode) { [selfNode addSubnode:subnode]; } else { + if (subnode.supernode) { + [subnode removeFromSupernode]; + } [self addSubview:subnode.view]; } } @@ -3891,6 +3894,9 @@ static const char *ASDisplayNodeAssociatedNodeKey = "ASAssociatedNode"; if (selfNode) { [selfNode addSubnode:subnode]; } else { + if (subnode.supernode) { + [subnode removeFromSupernode]; + } [self addSublayer:subnode.layer]; } }