2016-05-29 17 views
5

Ich entwickle eine inhaltsreiche App, die 60+ Bildschirme hat Ich möchte animierte Übergänge zwischen ihnen machen, ohne Storyboard Pfeile oder Verbindungen zu machen, um Dinge zu semplify, sagen wir, ich habe nur eine App mit 9 Bildschirmen, A, B, C, D, E, F, G, H, IWie fügt man animierte Kettenübergänge hinzu, ohne Storyboards zu verwenden?

enter image description here

wenn I Storyboards Segues verwenden, dann wird I um eine Verbindung zwischen jedem Bildschirm vornehmen müssen, und die andere hin und her, und das Ende ... mit Spaghetti/Spider Zeug, schauen Sie sich diesen Bildschirm zum Beispiel an, weil fast jeder Bildschirm kann zu den anderen in der App, die ich entwickeln

führen enter image description here

so, was ich brauche Hilfe bei der folgenden

1- Wie animierte segues machen, ohne Interface Builder-Verbindungen verwenden?

was ich benutze, ist dieses

ram.vc = self.storyboard!.instantiateViewControllerWithIdentifier("MeBeforeSignUp") //MeBeforeSignUp 
ram.vc.modalTransitionStyle = UIModalTransitionStyle.CrossDissolve 
self.presentViewController(ram.vc, animated: true, completion: nil) 

2-wie es auf dem Stapel mit einer Back-Taste drücken machen? um dies zu erklären, ich meine, ich möchte in einer langen Folge von Übergängen mit Rücktasten oben mit der gleichen Reihenfolge der Navigation zu überbrücken.

betrachten diese Reihenfolge der Navigation, von A -> B -> C -> ...

die Sequenz: A-> B-> C-> G> F> B-> C-> A-> B-> D-> B-> C I einziehen die Sequenz von [A] bis ... [C] jetzt bin ich in [C], ich habe eine Zurück-Taste, die zurück geht auf [B] jetzt bin ich in [B], ich habe eine Zurück-Taste das geht zurück zu [D] ... etc, bis ich [A] ohne eine Zurück-Taste erreiche, weil der Stapel leer ist

Was ist der beste Weg, diese Funktion für viele Bildschirme hinzuzufügen?

3- Warum bieten UIModalTransitionStyle nicht viele Animationen?

das sind nur die Animationen, die ich in der automatischen Vervollständigung

sehen

CoverVerticalCrossDissolveFlipHorizontalPartialCurl

4- gibt es mehr Animationen, die ich benutzen kann?

5- Warum gibt es keine Animationsoptionen? zum Beispiel CoverVertical hat keine Optionen für Geschwindigkeit und (von oben nach unten und von unten nach oben)

6- zum Beispiel die Twitter-iOS-Anwendung hat dieses unendliche Stack-System, können Sie von Post zu Post zu Post gehen ... Dutzende von Mal mit dem Zurück-Knopf mit dem Stack-System, was ich anstrebe, ist das, aber jetzt habe ich eine Frage, was meine Frage ist, wird das nicht den Widder überschwemmen? Wie schafft iOS das, um sicherzustellen, dass die App nicht von Ram Flooding abstürzt?

Ich suche Hilfe wirklich, es wird sehr geschätzt werden.

Antwort

2

Werfen Sie einen Blick auf das Protokoll UIViewControllerAnimatedTransitioning. Es ist ein bisschen eine harte Nuss zu knacken, aber sobald Sie das tun, werden Sie in der Lage sein, jeden gewünschten animierten Übergang zu erstellen, ohne an IB oder seine Standardanimationen gebunden zu sein.

Im Wesentlichen werden Sie Ihren ursprünglichen View-Controller wie gewohnt in eine UINavigationController einbetten. Wenn Sie die AnimatedTransitioning anschließen, können Sie jeden Push und Pop im Navigationscontroller abfangen und diktieren, welche Animation sie stattdessen verwenden sollen. Dadurch erhalten Sie die gewünschten benutzerdefinierten Animationen sowie den normalen Navigationsstapel.

Wie bei der Zurück-Schaltfläche müssten Sie entweder die Navigationsleiste anzeigen, die sie natürlich enthalten würde, oder eine Schaltfläche zu Ihren Ansichten hinzufügen, die den Ansichtscontroller vom Stapel löscht.

------------- EDIT Punkt für Punkt, Antworten geben -------------

  1. Sie sollten Gebrauch machen des UIViewControllerAnimatedTransitioning Protokolls, das ich oben erwähnte. Es ist ein großes Thema, aber glücklicherweise gibt es reichlich Tutorials und Erklärungen, wie es online funktioniert. Zuerst verwirrend, aber super, wenn es sich einmal eingerichtet hat.

  2. Wenn Sie Ihren View Controller A in eine UINavigationController einbetten, erhalten Sie dieses Verhalten sofort. Wenn Sie die Leiste am oberen Bildschirmrand nicht sehen möchten, können Sie sie ausblenden und programmgesteuert die Methode popViewController aufrufen, um einen viewController im Stapel zurückzusetzen.

  3. Modal präsentierte Ansichts-Controller werden nicht zum Stack des Navigations-Controllers hinzugefügt, daher würde ich die Verwendung von presentViewController oder irgendwelcher modal dargestellter Übergänge vermeiden. Um das gewünschte Verhalten zu erhalten, sollten Sie stattdessen Ihre Ansichts-Controller mit dem Navigations-Controller drücken und loslassen, anstatt sie anzuzeigen. Ich wünschte, sie hätten uns mehr Standardübergänge gegeben, aber Entwickler werden ermutigt, benutzerdefinierte Apps zu erstellen, die für ihre Apps geeignet sind.

  4. Mit UIViewControllerAnimatedTranisitioning können Sie so ziemlich jeden Übergang erstellen, den Sie möchten. Sie können wirklich kreativ werden und Ihrer App auf diese Weise ein einzigartiges Gefühl verleihen.

  5. Gleich wie die Antwort auf 4. Sie können jeden Aspekt jeder Animation in Ihrem Übergang steuern. Es ist völlig individuell.

  6. Dies ist UINavigationController Standardverhalten. Sie sollten sich gut mit dem Speicher befassen, solange Sie nicht eine Menge lang andauernder Tasks auf den View-Controllern im Stack belassen. Unwahrscheinlich würden Sie das sowieso tun.

+0

Danke, ich wünsche jemand kann in jedem einzelnen Fragepunkt erarbeiten, oder einige Beispiele zur Verfügung stellen. – DeyaEldeen

+0

Es gibt viele Tutorials für UIViewControllerAnimatedTransitioning, und es ist ein ziemlich breites Thema für eine einzelne SO-Antwort. Ich werde bearbeiten, um Ihre Fragen Punkt für Punkt zu beantworten. – BJHStudios

+0

@DeyaEldeen fügte einige Punkt für Punkt Antworten hinzu. ich hoffe es hilft! – BJHStudios

Verwandte Themen