From 98fdbdf39873deb848063ee6769f60f83873c24a Mon Sep 17 00:00:00 2001 From: Dominic Go Date: Fri, 27 Sep 2024 09:00:59 +0800 Subject: [PATCH] =?UTF-8?q?=E2=AD=90=EF=B8=8F=20Impl:=20`UIViewController.?= =?UTF-8?q?topmostModalLevel`?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ios/Temp/UIViewController+ModalHelpers.swift | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/ios/Temp/UIViewController+ModalHelpers.swift b/ios/Temp/UIViewController+ModalHelpers.swift index 3a08b854..4eef2b60 100644 --- a/ios/Temp/UIViewController+ModalHelpers.swift +++ b/ios/Temp/UIViewController+ModalHelpers.swift @@ -103,4 +103,19 @@ extension UIViewController { return presentedView.layer.animation(forKey: "position"); }; + + /// The current highest modal level in the window + /// + /// return value of `nil` means that there is no modal presented, and a + /// return value of `0` is the first presented modal, and so on... + /// + public var topmostModalLevel: Int? { + let window = self.view.window ?? UIApplication.shared.activeWindow; + + guard let window = window else { + return nil; + }; + + return window.currentModalLevel; + }; };