Skip to main content
Question

Stop iOS automatic dismissal or fix the delegate method

  • March 31, 2026
  • 1 reply
  • 20 views

Forum|alt.badge.img+5

On iOS paywallViewControllerWasDismissed is not called when the paywall gets dismissed.

There should also be a way to stop the paywall from being automatically dismissed when the user completes a purchase.

No SwiftUI. UIKit.

Most up-to-date version. My configuration is fine. Testing on device.

1 reply

Tarek
RevenueCat Staff
Forum|alt.badge.img+4
  • RevenueCat Staff
  • April 2, 2026

Hello there,

 

Tarek from the support team here, happy to assist you!

 

On iOS paywallViewControllerWasDismissed is not called when the paywall gets dismissed.

Here are a few reasons why paywallViewControllerWasDismissed wouldn't be called on dismiss:

  • If the PaywallViewController is not presented modally, but rather pushed in a UINavigationControlle , or if it's embedded as a child view controller. 
  • If you use dismissRequestedHandler to dismiss manually
  • If an exit-offer is configured

Feel free to double check this. You can also share snippets of code showing how you present PaywallViewController, so I can and see if I spot something odd.

 

There should also be a way to stop the paywall from being automatically dismissed when the user completes a purchase.

Yes, there is: the PaywallViewController initializer accepts a dismissRequestedHandler: ((_ controller: PaywallViewController) -> Void)? parameter. When this parameter is set, the paywall calls the handler on dismissal instead of dismissing itself. You can then fully control when to dismiss.

This handler fires both for when the user taps the close button and when a successful purchase is made.

I hope it's useful, let me know if you have other questions!

 

Best regards,