Questo mi ha bloccato per un po 'di tempo. Ho uno UISplitViewController
all'interno di uno UITabBarController
. La vista principale è un TableView. Quando clicco su una cella, faccio apparire un controller di visualizzazione molto semplice con solo un UIButton
centrato. Ecco il codice per il controller di visualizzazione:Swift Chiamate sbilanciate per iniziare/terminare transizioni di apparenza per
class TestViewController: UIViewController, UIImagePickerControllerDelegate, UINavigationControllerDelegate {
@IBOutlet weak var button: UIButton!
override func viewDidLoad() {
super.viewDidLoad()
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
@IBAction func buttonPressed(sender: AnyObject) {
let pickerC = UIImagePickerController()
pickerC.delegate = self
pickerC.modalPresentationStyle = .Popover
pickerC.popoverPresentationController?.sourceView = button as UIView
pickerC.popoverPresentationController?.sourceRect = (button as UIView).bounds
pickerC.popoverPresentationController?.permittedArrowDirections = UIPopoverArrowDirection.Any
self.presentViewController(pickerC, animated: true, completion: nil)//4
}
func imagePickerController(picker: UIImagePickerController, didFinishPickingImage image: UIImage!, editingInfo: [NSObject : AnyObject]!) {
self.dismissViewControllerAnimated(true, completion: nil)
}
func imagePickerControllerDidCancel(picker: UIImagePickerController) {
self.dismissViewControllerAnimated(true, completion: nil)
}
}
Se si fa clic su Annulla o seleziona e immagine, il controller di selezione si chiude correttamente. Il problema nasce quando clicco sul pulsante Indietro per tornare alla TableView, ricevo:
Unbalanced calls to begin/end appearance transitions for <TestViewController: 0x7fb882a72380>.
Il TestViewController
è molto semplice, quindi perché questo sarebbe accadendo?
Quando si ritorna a 'tableView', forse' tableView' ha tentato di presentare nuovamente questo vc? – Schemetrical