Wie macht man die Segue-Animation horizontal ohne UINavigationController?

8

Ich verwende UISplitViewController , mit MasterViewController und DetailViewController , ohne UINavigationController s.

W \ u00e4hlen Sie die Sequenzanimation f \ u00fcr Master- & gt; -Detail aus, die von

ausgelöst wird %Vor%

besteht darin, dass DetailViewController von unten nach oben angezeigt wird.

Wie kann ich diese Animation links zeigen?

    
Daniele B 20.11.2015, 13:19
quelle

5 Antworten

8

Ich musste in letzter Zeit mehr Kontrolle darüber haben, wie die Segues ausgeführt werden, also habe ich meine eigenen Segue-Klassen erstellt, die alle den Übergang in verschiedene Richtungen durchführen. Hier ist eine der Implementierungen:

Swift 2.x

%Vor%

Dieser wird einen Übergang von "rechts nach links" haben. Sie können diese Funktion für Ihre Bedürfnisse anpassen, indem Sie einfach die Anfangs- und Endpositionen des Quell- und Zielansicht-Controllers ändern.

Vergessen Sie auch nicht, dass Sie Ihr Segment als "benutzerdefiniertes Segment" markieren und ihm die neue Klasse zuweisen müssen.

UPDATE: Swift 3-Version hinzugefügt

Schnell 3

%Vor%     
Armin 29.11.2015, 13:55
quelle
3

Es klingt so, als ob der neue View-Controller modal präsentiert wird. Wenn Sie den detailViewController in eine UINavigationController einbetten und den neuen Controller drücken, wird er von rechts nach links animiert und sollte standardmäßig auch eine Zurück-Schaltfläche anzeigen.

    
mylogon 20.11.2015 13:35
quelle
3

Betten Sie Ihre View-Controller in UINavigationControllers ein.

Nach der SplitViewController-Vorlage:

Bei kleineren Geräten muss der NavigationController des Masters verwendet werden.

Außerdem wurde diese Frage hier beantwortet und hier und hier

Weitere Informationen finden Sie im View Controller Programmierhandbuch :

  

Es gibt zwei Möglichkeiten, einen View-Controller auf dem Bildschirm anzuzeigen: Einbetten in   ein Container View Controller oder präsentieren Sie es. Containeransicht-Controller   Bereitstellen der primären Navigation einer App ....

In Storyboards ist es nicht so schwierig, etwas in einen Navigationscontroller einzubetten. Klicken Sie auf den View-Controller, den Sie einbetten möchten, und dann auf Editor- & gt; in den Navigationscontroller einbetten.

    
beyowulf 20.11.2015 13:32
quelle
3

- Swift 3.0 -

Armins Lösung für Swift 3. Neu - & gt; Datei - & gt; Cocoa Touch Class - & gt; Klasse: ... (Unterklasse: UIStoryboardSegue).

%Vor%

Im Storyboard: Markieren Sie Ihr Segment als "benutzerdefiniertes Segment" und weisen Sie ihm die neue Klasse zu.

Hinweis: Wenn Sie ein UIScrollView in Ihrer detailesVC haben, wird dies nicht funktionieren.

    
Mr_Vlasov 26.01.2017 00:21
quelle
1

Wenn Sie einen Bildschirm mit kompakter Breite haben, wird "Details anzeigen" automatisch auf modaler Übergang zurückgesetzt. So wird Ihr DetailViewController angezeigt vertikal als der modale Standardübergang.

Sie können ein UIViewControllerTransitioningDelegate verwenden, um die Animation eines modalen Abschnitts anzupassen.

Hier ist ein Beispiel, um die horizontale Animation zu erreichen:
1. setze den transitioningDelegate und seine Delegate-Methode

%Vor%

2: ein benutzerdefinierter UIViewControllerAnimatedTransitioning: LeftTransition

%Vor%     
wj2061 27.11.2015 15:21
quelle