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
// Find the nearest view controller
var viewController: UIViewController! = self.firstAvailableUIViewController()
if viewController == nil {
guard let keyWindow = RCTVideoUtils.getCurrentWindow() else { return }
viewController = keyWindow.rootViewController
if !viewController.children.isEmpty {
viewController = viewController.children.last
}
}
var viewController: UIViewController! = RCTPresentedViewController() ?? RCTKeyWindow()?.rootViewController
guard viewController != nil else { return }
while let presented = viewController.presentedViewController { viewController = presented }
if viewController != nil {
_presentingViewController = viewController