fix(iOS): use top-most presented view controller for fullscreen presentation on iOS (#4753)

This commit is contained in:
Jianlong-Nie
2025-11-02 18:38:01 +08:00
committed by GitHub
parent b561eff5a5
commit 5d75b48295

View File

@@ -1090,15 +1090,9 @@ class RCTVideo: UIView, RCTVideoPlayerViewControllerDelegate, RCTPlayerObserverH
_playerViewController?.modalPresentationStyle = .fullScreen _playerViewController?.modalPresentationStyle = .fullScreen
// Find the nearest view controller // Find the nearest view controller
var viewController: UIViewController! = self.firstAvailableUIViewController() var viewController: UIViewController! = RCTPresentedViewController() ?? RCTKeyWindow()?.rootViewController
if viewController == nil { guard viewController != nil else { return }
guard let keyWindow = RCTVideoUtils.getCurrentWindow() else { return } while let presented = viewController.presentedViewController { viewController = presented }
viewController = keyWindow.rootViewController
if !viewController.children.isEmpty {
viewController = viewController.children.last
}
}
if viewController != nil { if viewController != nil {
_presentingViewController = viewController _presentingViewController = viewController