2015-08-17 10 views
10

sto usando presentViewController per cambiare da una vista all'altra senza controller di navigazione come:Come cambiare presentViewController transizione animazione

let HomeView = self.storyboard!.instantiateViewControllerWithIdentifier("HomeView") as! ViewControllerHome 
self.presentViewController(HomeView, animated:true, completion: nil) 

Come cambiare la transizione? Voglio la stessa animazione come il controller di navigazione.

posso usare un altro transizioni, ma non trovo la transizione che voglio Ecco il codice che sto utilizzando

let HomeView = self.storyboard!.instantiateViewControllerWithIdentifier("HomeView") as! ViewControllerHome 
HomeView.modalTransitionStyle = UIModalTransitionStyle.PartialCurl 
self.presentViewController(HomeView, animated:true, completion: nil) 
+0

suo stato risposto molto bene qui, piuttosto vecchio domanda però. : http://stackoverflow.com/questions/5004102/is-there-a--to-change-the-animation-style-of-a-modal-view-controller-appearan – lazyDroid

+0

@lazyDroid grazie, Sono riuscito a rendere il codice aggiunto al post, posso modificare l'animazione ma non trovo l'animazione che voglio –

+0

Utilizzare un controller di navigazione. Puoi rimuovere tutte le cose che non vuoi e ottenere l'animazione. –

risposta

9

per chiunque fare questo su iOS 8, questo è quello che ho dovuto fare:

Ho un file di classe rapido denominato SettingsView.swift e un file .xib denominato SettingsView.xib. Ho eseguito questo in MasterViewController.swift (o qualsiasi controller vista davvero di aprire un secondo controller di vista)

@IBAction func openSettings(sender: AnyObject) { 
     var mySettings: SettingsView = SettingsView(nibName: "SettingsView", bundle: nil) /<--- Notice this "nibName" 
     var modalStyle: UIModalTransitionStyle = UIModalTransitionStyle.CoverVertical 
     mySettings.modalTransitionStyle = modalStyle 
     self.presentViewController(mySettings, animated: true, completion: nil) 
    } 
+0

Risposta perfetta .. – Mehul

+0

Questa raccolta di animazioni fornite da Apple è ridicola. Fornisce cose travolgenti e poco pratiche come PartialCurl, ma manca cose di base come CoverHorizontal. – modiX

+0

sì, sono d'accordo con te. dovrebbe essere disponibile. – Mehul

7

La risposta di Mehul è corretta ma anche è possibile farlo nel modo desiderato. Con l'instantiateViewController (withIndentifier: stringa)

Questo è come lo faccio:

let destController = self.storyboard?.instantiateViewController(withIdentifier: "") as! YourViewController 
destController.modalTransitionStyle = .flipHorizontal 
self.navigationController?.present(destController, animated: true, completion: nil) // OR 

let destController = self.storyboard?.instantiateViewController(withIdentifier: "") as! YourViewController 
destController.modalTransitionStyle = .flipHorizontal 
self.present(destController, animated: true, completion: nil) 
Problemi correlati