From cef8f9e594ad040fee66830b10a981b847fb73c3 Mon Sep 17 00:00:00 2001 From: Dylan Date: Wed, 27 Dec 2023 12:36:33 +0100 Subject: [PATCH] fix(ios): banners not properly destroyed --- ios/RNGoogleMobileAds/RNGoogleMobileAdsBannerComponent.m | 9 +++++++++ ios/RNGoogleMobileAds/RNGoogleMobileAdsBannerView.mm | 7 +++++++ 2 files changed, 16 insertions(+) diff --git a/ios/RNGoogleMobileAds/RNGoogleMobileAdsBannerComponent.m b/ios/RNGoogleMobileAds/RNGoogleMobileAdsBannerComponent.m index 2a80c1cd..e3d6f0f2 100644 --- a/ios/RNGoogleMobileAds/RNGoogleMobileAdsBannerComponent.m +++ b/ios/RNGoogleMobileAds/RNGoogleMobileAdsBannerComponent.m @@ -23,6 +23,15 @@ @implementation RNGoogleMobileAdsBannerComponent +- (void)removeFromSuperview { + if (_banner) { + [_banner removeFromSuperview]; + _banner = nil; + } + + [super removeFromSuperview]; +} + - (void)didSetProps:(NSArray *)changedProps { if (_propsChanged) { [self requestAd]; diff --git a/ios/RNGoogleMobileAds/RNGoogleMobileAdsBannerView.mm b/ios/RNGoogleMobileAds/RNGoogleMobileAdsBannerView.mm index 84cb611d..e9661601 100644 --- a/ios/RNGoogleMobileAds/RNGoogleMobileAdsBannerView.mm +++ b/ios/RNGoogleMobileAds/RNGoogleMobileAdsBannerView.mm @@ -94,6 +94,13 @@ - (void)updateProps:(Props::Shared const &)props oldProps:(Props::Shared const & [super updateProps:props oldProps:oldProps]; } +- (void)dealloc { + if (_banner) { + [_banner removeFromSuperview]; + _banner = nil; + } +} + #pragma mark - Methods - (void)initBanner:(GADAdSize)adSize {