You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

iOS 18中PHPickerViewController全屏显示且无法选择或关闭问题

iOS 18下PHPickerViewController全屏无响应问题排查思路

1. 简化并检查PHPickerConfiguration配置

iOS 18可能对配置参数有新约束,先尝试极简配置验证基础功能:

let config = PHPickerConfiguration()
config.selectionLimit = 1
let picker = PHPickerViewController(configuration: config)
picker.delegate = self
// 后续present逻辑不变

同时确认Info.plist中相册权限描述NSPhotoLibraryUsageDescription已正确配置,且用户已授权相册访问权限——iOS 18对权限校验可能更严格。

2. 修正ViewController的Present层级

直接使用window?.rootViewControllerpresent可能存在层级问题,换用当前活跃的顶层ViewController来弹出picker:

// 先实现顶层VC获取方法
func topViewController(controller: UIViewController? = UIApplication.shared.keyWindow?.rootViewController) -> UIViewController? {
    if let navVC = controller as? UINavigationController {
        return topViewController(controller: navVC.visibleViewController)
    }
    if let tabVC = controller as? UITabBarController {
        if let selectedVC = tabVC.selectedViewController {
            return topViewController(controller: selectedVC)
        }
    }
    if let presentedVC = controller?.presentedViewController {
        return topViewController(controller: presentedVC)
    }
    return controller
}

// 调用顶层VC弹出picker
if let topVC = topViewController() {
    topVC.present(phPicker, animated: true)
}

另外可尝试直接用FlutterViewController实例present,而非通过window的rootVC。

3. 确保Delegate实现完整

iOS 18可能要求必须实现PHPickerViewControllerDelegate的核心方法,否则picker无法响应交互:

// 确保类遵循协议
class YourClass: NSObject, PHPickerViewControllerDelegate {
    // 必须实现该方法处理选择完成/关闭操作
    func picker(_ picker: PHPickerViewController, didFinishPicking results: [PHPickerResult]) {
        picker.dismiss(animated: true)
        // 按需处理选择结果
    }
}

同时确认phPicker.delegate = self的赋值代码没有遗漏。

4. 调整ModalPresentationStyle

尝试手动设置picker的弹出样式,适配iOS 18的默认行为变更:

phPicker.modalPresentationStyle = .pageSheet // 或.automatic/.fullScreen

5. 升级Flutter插件版本

如果使用的是旧版image_picker,执行flutter pub upgrade image_picker升级到最新版本——插件大概率已针对iOS 18做了兼容性修复。

内容的提问来源于stack exchange,提问作者Liangwei Chen

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.17 11:03:11