2012-10-16 15 views
6

Mit dem neuen iOS 6 hat Apple das neue UIActivityViewController-Menü (Bild A) hinzugefügt, das anstelle der alten UIActionSheet-Textschaltfläche kleine Symbolschaltflächen enthält.Erstellen einer benutzerdefinierten Freigabesicht ähnlich der neuen Freigabe für iOS 6-Tasten

Ich möchte einen UIActivityViewController aber mit benutzerdefinierten Schaltflächen anzeigen. Ich weiß, dass sie eine Liste von Standardanwendungen haben, die angezeigt werden können (Mail, Nachrichten, Facebook, Twitter, etc ...), aber ich möchte anpassen, was passiert, wenn Sie auf diese Schaltflächen klicken. Wenn Sie auf das Mail-Freigabesymbol klicken, öffnet sich die Mail-App mit einer neuen Nachricht, als Beispiel möchte ich es verwenden, wenn beim Klicken auf die Mail-App die Twitter-App geöffnet wird (nicht wirklich, sondern nur etwas anderes als der Standard) . Im Moment finde ich keine Möglichkeit, meine eigenen Methoden hinter den Buttons hinzuzufügen.

Mit dem neuesten ShareKit haben sie Instagram Sharing hinzugefügt und wenn Sie auswählen, um mit ihm zu teilen, wird eine neue Ansicht angezeigt, die genau wie der Bildschirm UIActivityViewController aussieht (Bild B). Sie schienen herausgefunden zu haben, wie man benutzerdefinierte Schaltflächen hinzufügt, die benutzerdefinierte Dinge tun. Ich habe den ShareKit-Code durchsucht, finde aber nicht, wo oder wie das funktioniert.

Vielleicht ist das, was ich frage, noch nicht einmal möglich, aber jede Hilfe wird geschätzt!

Bild A image A

Bild B image B

Antwort

9

Haben Blick auf diese link. Es ist eine ziemlich gute Einführung in die gemeinsame Nutzung auf iOS 6.

Das folgende Zitat aus diesem Blog-Post ist:

Sie können auch Unterstützung für Ihre eigenen Sharing-Optionen hinzufügen und noch lassen UIActivityViewController die Interaktion mit dem Griff Benutzer. Um dies zu tun, Unterklasse der abstrakten UIActivity Klasse und überschreiben Sie die erforderlichen Methoden (siehe die Dokumentation für Details).

+0

Das ist, was ich gesucht habe. Danke für die Antwort :) – rob1302

2

Sharekit ist eine Abstraktion, die nicht auf die Art und Weise angepasst werden kann, wie Sie sie verwenden möchten. Apple steuert die Schnittstelle zu diesen Diensten.

Wenn Sie die Freigabe und die Funktionsweise anpassen möchten, müssen Sie leider eine eigene Version von Sharekit mit UI- und API-Einstiegspunkten für diese Dienste implementieren.

Sharekit existiert, so dass Sie dies nicht tun müssen. Wenn sich die Anforderungen im Laufe der Zeit ändern, erwarte ich, dass Apple Dienste nach Belieben hinzufügen und entfernen wird.

Die Verwendung der API "wie sie ist" ist Ihre sinnvollste Option.

0

Image B verwendet tatsächlich Instagrams Documentation Interaction Code anstelle eines UIActivityViewControllers mit einer benutzerdefinierten UIActivity. Sie können hier mehr über Instagrams „Haken“ lesen ... custom iphone hooks

A UIActivity hat für Instagram von einer dritten Partei erstellt worden, die Sie here finden ... Dadurch wird das gleiche Menü wie ShareKit öffnet, wenn ausgewählt, da es das ist einzige Möglichkeit, ein Bild direkt an Instagram zu übergeben.