J'ai un contrôleur de vue de table avec une cellule qui a un bouton.Déplacer vers un contrôleur de vue en cliquant sur un bouton à l'intérieur de UIPopoverPresentationController
En cliquant sur ce bouton, j'affiche un contrôleur de vue en tant que UIPopoverPresentationController.
Ce contrôleur a deux boutons, YES et NO.
Au clic de OUI je veux être en mesure de segue à un autre contrôleur de vue et sur un clic de NON, je vais rejeter le contrôleur pop over.
Au clic de NO, le popover est rejeté mais au clic de OUI, je ne passe pas au contrôleur de vue requis.
Bien que la méthode load() ait été affichée dans cette vue, le contrôleur a été appelé. Le problème est que le nouveau contrôleur de vue n'est pas affiché.
Le clic de YES, le popover se rejetée, mais reste sur la vue précédente contrôleur
Après mon code
TableViewController classe
func onTapPickButton(sender: UIButton) {
let storyboard: UIStoryboard = UIStoryboard(name: "Main", bundle: nil)
let popoverViewController = storyboard.instantiateViewController(withIdentifier: "ConfirmDialogViewController") as! ConfirmDialogViewController
popoverViewController.preferredContentSize = CGSize(width: view.frame.width/1.33, height: view.frame.height/2.34)
popoverViewController.modalPresentationStyle = UIModalPresentationStyle.popover
let popover: UIPopoverPresentationController = popoverViewController.popoverPresentationController!
popover.sourceView = self.view
popover.sourceRect = CGRect(x: self.view.bounds.midX, y: self.view.bounds.midY, width: 0, height: 0)
popover.permittedArrowDirections = UIPopoverArrowDirection(rawValue: 0)
popover.delegate = self
present(popoverViewController, animated: true, completion: nil)
}
PopOver Voir classe contrôleur
@IBAction func onTapNoButton(_ sender: UIButton) {
self.dismiss(animated: true, completion: {})
}
@IBAction func onTapYesButton(_ sender: UIButton) {
let storyboard: UIStoryboard = UIStoryboard(name: "Main", bundle: nil)
let viewController = storyboard.instantiateViewController(withIdentifier: "View") as! ViewController
present(viewController, animated: true, completion: nil)
}
Toute aide sera appréciée. Je vous remercie.
Je reçois l'erreur suivante. Tentative de présenter sur dont la vue ne figure pas dans la hiérarchie des fenêtres! –