0
votes

I get the error:

"Unbalanced calls to begin/end appearance transitions for ”.

In my app you start at a tableViewController, if you click the photo icon at the bottom the camera pops up and when you have taken a photo you go through a navigationController into the editing viewController. From here if you click the image you are sent to the preview viewController.

My problem is if I click "New Photo" when editing an existing item it works fine, but if I click "New Photo" on an item i have just created (and not yet saved) I'm sent all the way back to the initial tableViewController

enter image description here

My code looks like this:

// Called when the user finishes taking a photo.
func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : Any]) {
    // The info dictionary contains multiple representations of the image, and this uses the original.
    image = info[UIImagePickerControllerOriginalImage] as? UIImage

    // Dismiss the picker.
    dismiss(animated: false, completion: nil)

    performSegue(withIdentifier: "unwindToExpenseView", sender: self)
}

In my editing viewController

@IBAction func unwindToExpenseView(sender: UIStoryboardSegue) {
    if let ImagePreviewer = sender.source as? ImagePreviewViewController {
        photoImageView.image = ImagePreviewer.image
    }
}
1

1 Answers

1
votes

Try to performSegue in completion of dismiss(animated:).

self.dismiss(animated: false) { 
      performSegue(withIdentifier: "unwindToExpenseView", sender: self)
}