Ich bin etwas unklar in Bezug auf die Objektbesitzmuster für die folgenden Instanzen erforderlich. Wenn mein UIViewController einen Popover-Controller, ein Action-Sheet oder einen anderen View-Controller als modal darstellt, muss ich mich an einen zurückbehaltenen Verweis auf diesen Kind-Controller halten, bis er beendet wird?Muster für UIPopoverController-, UIActionSheet- und Modal View-Controller beibehalten/freigeben?
Mit anderen Worten, führen die folgenden Codezeilen die Eigentumsrechte effektiv "übertragen" oder nicht?
[aPopoverController presentPopoverFromBarButtonItem:someButtonItem permittedArrowDirections:UIPopoverArrowDirectionAny animated:NO];
[anActionSheet showFromBarButtonItem:someButtonItem animated:NO];
[aViewController presentModalViewController:someOtherViewController animated:YES];
Kann mir jemand auf explizite Dokumentation zu diesem Thema hinweisen?
Vorsicht, SearchVC ist undicht, wenn Sie es auf diese Weise tun. Fügen Sie eine Autorelease hinzu. – steipete
Ja, searchVC ist durchgesickert. Anstelle einer Autorelease wird auch eine einfache Version funktionieren. Fügen Sie diese zur letzten Zeile hinzu: '[searchVC release];' –
Als Dokumentation für 'popoverControllerDidDismissPopover:' sagt: _ "Der Popover-Controller ruft diese Methode nicht als Reaktion auf programmatische Aufrufe an die Methode displacePopoverAnimated: Wenn Sie das Popover programmatisch ablehnen, sollten Sie alle Bereinigungsaktionen sofort nach dem Aufruf der Methode "displacePopoverAnimated:" ausführen. "_. Also, wenn Sie 'disposePopoverAnimated:' verwenden, müssen Sie auch Release danach aufrufen, sonst erhalten Sie ein Leck. – ivanzoid