Wie kann ich Daten von einem PopoverViewController an den Hauptansicht-Controller auf einem iPhone zurückgeben?Daten von einem Popover-View-Controller auf dem iPhone zurückgeben
Ich weiß, ich mache etwas schrecklich falsch, aber ich kann es nicht herausfinden. Hier
ist der Code: PopoverViewController.swift
protocol PopoverViewControllerDelegate {
func messageData(data: AnyObject)
}
class PopoverViewController: UIViewController {
@IBOutlet weak var inputMessage: UITextField!
var delegate: PopoverViewControllerDelegate?
@IBAction func sendData(sender: AnyObject) {
if inputMessage.text != ""{
self.presentingViewController!.dismissViewControllerAnimated(true, completion: nil)
self.delegate?.messageData(inputMessage.text!)
}
}
}
Haupt ViewController.swift:
class ViewController: UIViewController, UIPopoverPresentationControllerDelegate, PopoverViewControllerDelegate {
@IBOutlet weak var showData: UILabel!
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
// popover segue
if segue.identifier == "popoverSegue" {
let popoverViewController = segue.destinationViewController
popoverViewController.popoverPresentationController!.delegate = self
}
// code to comunicate with data in popoverViewController
let pvc = storyboard?.instantiateViewControllerWithIdentifier("popoverViewController") as! PopoverViewController
pvc.delegate = self
self.presentViewController(pvc, animated:false, completion:nil)
}
func adaptivePresentationStyleForPresentationController(controller: UIPresentationController) -> UIModalPresentationStyle {
return UIModalPresentationStyle.None
}
func messageData(data: AnyObject) {
self.showData.text = "\(data)"
}
}
Mit dem obigen Code-I-Daten zurück zur Hauptansicht-Controller ohne Probleme passieren kann, Das Problem ist, dass das Popover nicht funktioniert, es funktioniert nur wie eine normale ViewController
den gesamten Bildschirm besetzt.
Die lustige Sache ist, dass, wenn ich die folgende Codezeile kommentieren das Popover funktioniert, aber ich kann Daten nicht mehr zurück übergeben, kann ich das Popover sehen, aber die Datenübergabe funktioniert nicht mehr.
// if I comment this line
self.presentViewController(pvc, animated:false, completion:nil)
Ich bekomme keine Fehler, man hört einfach auf zu arbeiten.
Irgendwelche Vorschläge?
Vielen Dank
@ vacawama - Die popover funktioniert nicht, die Übergabe von Daten funktioniert, aber die popover Viewcontroller füllt den gesamten Bildschirm. Danke –
Hast du 'presentAsPopover' gewählt, als du den Abschnitt im Storyboard verdrahtet hast? – vacawama
Ja, tat ich. Danke –