[当我拍照并返回到现有屏幕时,我之前输入的每个数据都为零。为什么

问题描述 投票:0回答:1

拍摄照片时,它甚至没有显示,但是正在保存并显示在其他viewController中。

通过拍摄按钮执行的操作可以很好地执行所有操作,但是在通过以下代码拍摄的照片之后不会显示。

第一次填写表格并尝试拍照时,我填写的剩余数据将为空。

为此做什么?

var imagePicker: UIImagePickerController!
    @IBAction func takePhotoAction(_ sender: UIButton) {

             imagePicker =  UIImagePickerController()
             imagePicker.delegate = self
            imagePicker.sourceType = .camera


        }


        //Camera to save image and display later
        func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [UIImagePickerController.InfoKey : Any]) {

            imagePicker.dismiss(animated: true, completion: nil)

            if let pickerImage = info[UIImagePickerController.InfoKey.originalImage] {

                showImage.image = pickerImage as! UIImage


             }
ios swift camera uiimagepickercontroller
1个回答
0
投票

所以基本上这是iOS中的正常行为。您的数据不会保留在已初始化的视图控制器中。

为什么视图控制器未初始化?

视图控制器由于从导航堆栈中弹出而被取消初始化。在您的情况下,这意味着您在视图控制器B上并输入一些数据,然后导航回到视图控制器A(因此,您正在从导航堆栈中弹出视图控制器B)。从导航堆栈中弹出视图控制器时,将没有引用它,因此,您将丢失所有视图控制器数据。

如何解决此问题?

您可以先保存所有输入的数据,然后再查看具有数据耗用量的视图(保存方式和保存位置由您决定)。然后,下次您导航回到该视图时,请显示已保存的数据(如果存在)。

© www.soinside.com 2019 - 2024. All rights reserved.