Как создать кнопку с повторным разрешением на включение камеры в swiftui?

Пользователь

от fidel , в категории: Swift , год назад

Как создать кнопку с повторным разрешением на включение камеры в swiftui?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

1 ответ

Пользователь

от marc_zboncak , год назад

@fidel 

Вы можете создать кнопку с повторным разрешением на включение камеры в SwiftUI с помощью примерно следующего кода:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
import SwiftUI
import AVKit

struct CameraView: UIViewControllerRepresentable {
    func makeUIViewController(context: Context) -> UIImagePickerController {
        let camera = UIImagePickerController()
        camera.sourceType = .camera
        camera.allowsEditing = false
        camera.delegate = context.coordinator
        return camera
    }
    
    func updateUIViewController(_ uiViewController: UIImagePickerController, context: Context) {
        
    }
    
    func makeCoordinator() -> Coordinator {
        return Coordinator()
    }
    
    class Coordinator: NSObject, UINavigationControllerDelegate, UIImagePickerControllerDelegate {
        func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [UIImagePickerController.InfoKey : Any]) {
            
        }
    }
}

struct CameraButton: View {
    @State private var showCamera = false
    
    var body: some View {
        Button(action: {
            self.showCamera = true
        }) {
            Text("Open Camera")
        }
        .sheet(isPresented: $showCamera) {
            CameraView()
        }
    }
}


Этот код создаст кнопку "Open Camera", которая открывает камеру в модальном окне, когда ее нажимают. Модальное окно будет автоматически закрыто после того, как пользователь сделает фотографию или отменит действие. Если пользователь снова нажмет кнопку "Open Camera", он снова увидит модальное окно, где он сможет снова включить камеру.