Frage

Ein sehr eigenartiger Fehler:

Ich habe BarbuttonItem, das einen solchen Uipopoverovercontroller herausstellt:

-(void) addNewProjectButtonClicked:(id)sender
{
    //Some Preparations....

    [popover presentPopoverFromBarButtonItem:sender permittedArrowDirections:UIPopoverArrowDirectionAny animated:YES];
}

Wie erwartet erscheint ein Popover -Controller am richtigen Ort.

Jetzt erwarte ich das, wenn ich berühre IRGENDWO Außerhalb des Popovers wird es entlassen.
Das einzige Problem ist, dass, wenn ich wieder auf den Barbutton schlug (das, der den Popover gepoptete), anstatt den alten zu entlassen und ein neues zu präsentieren, wie ich es erwarten würde, das Ergebnis ist EIN WEITERER Popover über dem vorhandenen. Das heißt, wenn ich immer wieder drücke, bekomme ich einen Stapel Popovers, der nur mit mehreren Klicks an einem anderen Ort abgewiesen werden kann.

Ich weiß, dass ich hier ein Singleton-Designmuster verwenden kann, um dies zu lösen, aber gibt es nicht eine einfachere und integrierte Möglichkeit, sich darum zu kümmern?

Vielen Dank!

War es hilfreich?

Lösung

Ich bin vor ein paar Monaten auf dasselbe Problem gestoßen, dachte, es würde sich selbst entlassen, als ich tippte irgendetwas Aber es ist nicht der Fall.

Die Art und Weise, wie ich damit zu tun habe UIBarButtonItem ist abgebildet.

-(void) addNewProjectButtonClicked:(id)sender
{
    [popover dismissPopoverAnimated:YES];
    // Set it up again.
    [popover ...];
}

Sie können eine Eigenschaft für eine einfache Speicherverwaltung verwenden oder selbst umgehen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top