以编程方式调用 PhotoPicker?

Gal*_*her 8 swiftui photo-picker

SwiftUI PhotoPicker 非常适合创建要按下的按钮/标签,然后在按下标签时显示照片选择器。但是,我想在按下选择器标签后而不是在条件测试通过后调用照片选择器。

例如,如果用户单击将调用照片选择器的按钮,我想首先检查图像将附加到的记录是否已保存。如果记录已保存,我想启动选择器。如果尚未保存,我会显示一条警报,询问他们是否要保存或取消。如果他们选择保存,我将保存记录,然后我想自动调用照片选择器。

那么我可以以编程方式调用选取器而不是让用户单击它吗?谢谢你的建议!

πte*_*ter 13

从 iOS 16 开始,您可以使用photosPicker(isPresented

struct DemoView: View {
    
    @ObservedObject var viewModel: DemoViewModel

    var body: some View {
        VStack {
            Text("Demo Project")
        }
        .photosPicker(isPresented: $viewModel.shouldPresentPhotoPicker, selection: $viewModel.selectedPickerItem)
    }
}

class DemoViewModel: ObservableObject {
    @Published var shouldPresentPhotoPicker = false
    @Published var selectedPickerItem: PhotosPickerItem?

    func saveTheRecord() {
        /// Make an async call, and wait
        shouldPresentPhotoPicker = true // Shows the Picker
    }
}
Run Code Online (Sandbox Code Playgroud)