2016-05-29 11 views
5

Sto sviluppando un'app ricca di contenuti con più di 60 schermate Voglio fare passate animate tra di loro senza creare frecce o connessioni storyboard, per semplificare le cose, diciamo che ho solo un'app con 9 schermate, A, B, C, D, e, F, G, H, Icome aggiungere il sistema di transizioni concatenate animate senza utilizzare i seguiti di storyboard?

enter image description here

se uso storyboard segues, allora sarà necessario effettuare un collegamento tra ogni schermo e l'altra avanti e indietro ... e fine con spaghettini/spider, dare un'occhiata a questo schermo per esempio, questo è perché quasi ogni schermo può portare all'altro nell'app che sto sviluppando

enter image description here

così, quello che ho bisogno di aiuto con è il seguente,

1- Come fare animati segues senza dover utilizzare le connessioni Interface Builder?

quello che uso è questo

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

2-how per farlo spingere sulla pila con un pulsante indietro? per spiegare questo, voglio dire, voglio seguire una lunga sequenza di transizioni con i pulsanti indietro in alto avendo lo stesso ordine di navigazione ..

considera questa sequenza di navigazione, da A -> B -> C -> ...

SEQUENZA: A-> B-> C> G> F-> B-> C> A-> B-> D> B-> C mi muovo in la sequenza da [A] a ... [C] ora sono in [C], ho un pulsante indietro che risale a [B] ora sono in [B], ho un pulsante indietro che torna a [D] ... ecc. fino a raggiungere [A] senza un pulsante Indietro perché lo stack è vuoto

qual è il modo migliore per aggiungere questa funzionalità per molte schermate?

3- Perché il UIModalTransitionStyle non offre molte animazioni?

queste sono solo le animazioni posso vedere nel completamento automatico

CoverVerticalCrossDissolveFlipHorizontalPartialCurl

4- ci sono più animazioni che posso usare?

5- perché non ci sono opzioni di animazione? ad esempio CoverVertical non ha opzioni per la velocità e (dall'alto verso il basso e dal basso verso l'alto)

6- per esempio l'applicazione Twitter twitter ha questo sistema stack infinito, puoi passare da un post all'altro per postare ... decine di volte con il pulsante indietro che ha il sistema stack, quello a cui sto mirando è questo, ma ora ho una domanda, quale è la mia domanda, non è che andrà a inondare la ram? come fa iOS a gestirlo in modo da assicurarsi che l'app non si arresti in modo anomalo da ram flooding?

Sto cercando aiuto davvero, sarà molto apprezzato.

risposta

2

Dai un'occhiata al protocollo UIViewControllerAnimatedTransitioning. È un po 'difficile da decifrare, ma una volta fatto sarai in grado di creare qualsiasi transizione animata che desideri senza essere vincolata da IB o dalle sue animazioni predefinite.

In sostanza, si incorpora il controller di visualizzazione iniziale in un UINavigationController come normale. Collegando lo AnimatedTransitioning ti permetterà di intercettare ogni Push e Pop nel controller di navigazione e dettare quale animazione dovrebbero usare. Questo ti darà le animazioni personalizzate che cerchi, oltre al normale stack di navigazione.

Per quanto riguarda il pulsante Indietro, è necessario mostrare la barra di navigazione che dovrebbe includerlo in modo naturale oppure aggiungere un pulsante alle visualizzazioni che farebbero scattare il controller di visualizzazione dallo stack.

------------- EDIT per fornire risposte punto per punto -------------

  1. Si dovrebbe fare uso del protocollo UIViewControllerAnimatedTransitioning che ho menzionato sopra. È un argomento importante, ma per fortuna ci sono ampi tutorial e spiegazioni su come funziona online. All'inizio confuso, ma fantastico una volta sistemato. Sfortunatamente non una situazione di tipo di risposta taglia e incolla.

  2. Se si incorpora il controller di visualizzazione A in un UINavigationController, si ottiene questo comportamento immediatamente. Se non si desidera visualizzare la barra nella parte superiore dello schermo, è possibile nasconderla e chiamare a livello di programmazione il metodo popViewController quando appropriato per tornare indietro di una viewController nello stack.

  3. I controller di visualizzazione presentati in modo modale non vengono aggiunti allo stack del controller di navigazione, quindi eviterei di utilizzare presentViewController o qualsiasi transizione presentata in modo modale. Al fine di ottenere il comportamento che si desidera, si dovrebbe invece spingere e inserire i controller di visualizzazione con il controller di navigazione anziché presenti. Mi auguro che ci abbiano dato più transizioni predefinite, ma gli sviluppatori sono incoraggiati a crearne di personalizzati adatti alle loro app.

  4. Utilizzando UIViewControllerAnimatedTranisitioning è possibile creare praticamente qualsiasi transizione desiderata. Puoi davvero diventare creativo e dare alla tua app una sensazione unica in questo modo.

  5. Come la risposta a 4. È possibile controllare ogni aspetto di ogni animazione nella transizione. È interamente personalizzato

  6. Questo è il comportamento predefinito di UINavigationController. Dovresti avere una buona memoria, a patto di non lasciare un gruppo di attività a lunga esecuzione sui controller della vista vivi nello stack. Difficilmente lo faresti comunque.

+0

Grazie, desidero che qualcuno possa elaborare ogni singolo punto di domanda o fornire alcuni esempi. – DeyaEldeen

+0

ci sono molti tutorial per UIViewControllerAnimatedTransitioning ed è un argomento piuttosto ampio per una risposta SO singola. Modificherò per rispondere alle tue domande punto per punto. – BJHStudios

+0

@DeyaEldeen ha aggiunto alcune risposte punto per punto. spero che sia d'aiuto! – BJHStudios

Problemi correlati