Transmettre des données depuis et vers Popover dans Swift

Dans mon projet actuel, j'ai une vue détaillée qui montre un logging spécifique de ma vue de table. J'ai les labels suivantes

@IBOutlet weak var vacationImageView: UIImageView! @IBOutlet weak var percentSaved: UILabel! @IBOutlet weak var cost: UILabel! @IBOutlet weak var saved: UILabel! @IBOutlet weak var circleProgressView: CircularProgressView! @IBOutlet weak var daysDepart: UILabel! 

J'appelle un popover que je veux envoyer la valeur actuelle du text enregistré dans mon popup, permettre à l'user de le modifier et de le renvoyer à la vue. Voici mon appel de popover.

 @IBAction func addPopover(sender: UIView) { let savingsInformationViewController = storyboard?.instantiateViewControllerWithIdentifier("SavingsAddPopover") as UIViewController savingsInformationViewController.modalPresentationStyle = .Popover savingsInformationViewController.preferredContentSize = CGSizeMake(200, 200) let popoverController = savingsInformationViewController.popoverPresentationController popoverController?.sourceView = sender popoverController?.permittedArrowDirections = .Any popoverController?.delegate = self presentViewController(savingsInformationViewController, animated: true, completion: nil) } 

J'aurais pensé que je pourrais referencer l'object de données du popover mais je ne peux pas … du less pas la façon dont je pense.

 class ViewController: UIViewController,SavingViewControllerDelegate,UIPopoverPresentationControllerDelegate{ @IBOutlet var labelText: UILabel! override func viewDidLoad() { super.viewDidLoad() // Do any additional setup after loading the view, typically from a nib. } @IBAction func buttonPopOverClick(sender: UIButton) { let savingsInformationViewController = storyboard?.instantiateViewControllerWithIdentifier("SavingsAddPopoverVC") as SavingViewController savingsInformationViewController.delegate = self savingsInformationViewController.strSaveText=labelText.text savingsInformationViewController.modalPresentationStyle = .Popover if let popoverController = savingsInformationViewController.popoverPresentationController { popoverController.sourceView = sender popoverController.sourceRect = sender.bounds popoverController.permittedArrowDirections = .Any popoverController.delegate = self } presentViewController(savingsInformationViewController, animated: true, completion: nil) } func saveText(strText: NSSsortingng) { labelText.text=strText } // MARK: - UIPopoverPresentationControllerDelegate func adaptivePresentationStyleForPresentationController(controller: UIPresentationController!) -> UIModalPresentationStyle { return .FullScreen } func presentationController(controller: UIPresentationController!, viewControllerForAdaptivePresentationStyle style: UIModalPresentationStyle) -> UIViewController! { return UINavigationController(rootViewController: controller.presentedViewController) } } protocol SavingViewControllerDelegate { func saveText(var strText : NSSsortingng) } class SavingViewController: UIViewController { @IBOutlet var textField: UITextField! var delegate : SavingViewControllerDelegate? var strSaveText : NSSsortingng! override func viewDidLoad() { super.viewDidLoad() textField.text = strSaveText // Do any additional setup after loading the view. } @IBAction func buttonDone(sender: UIButton) { if (self.delegate) != nil { delegate?.saveText(textField.text) self.dismissViewControllerAnimated(true, nil) } } }