2015-08-17 17 views
10

Używam presentViewController zmienić z widokiem na drugi bez kontrolera nawigacji jak:Jak zmienić presentViewController animację Transition

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

Jak zmienić przejścia? Chcę tej samej animacji, jak kontroler nawigacyjny.

mogę użyć innego przejścia, ale nie znaleźliśmy przejście chcę tutaj jest kod używam

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

Jego odpowiedziano tutaj bardzo dobrze, choć dość stare pytanie. : http://stackoverflow.com/questions/5004102/is-there-a-way-to-change-the-animation-style-of-a-modal-view-controller-appearan – lazyDroid

+0

@lazyDroid thanks, Udało mi się zrobić kod dodany do postu, mogę zmienić animację, ale nie znajduję animacji, którą chcę. –

+0

Użyj kontrolera nawigacyjnego. Możesz usunąć wszystkie rzeczy, których nie chcesz i uzyskać animację. –

Odpowiedz

9

dla każdego, kto robi to na systemów iOS 8, to co miałem zrobić:

Mam szybki plik klasy o nazwie SettingsView.swift i plik .xib o nazwie SettingsView.xib. Biegnę to w MasterViewController.swift (lub dowolny kontroler widok naprawdę otworzyć drugi kontroler widoku)

@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

Doskonała odpowiedź .. – Mehul

+0

Ta kolekcja animacji dostarczonych przez Apple jest niedorzeczna. Zapewnia przytłaczające i ledwie praktyczne rzeczy, takie jak PartialCurl, ale brakuje w nim podstawowych rzeczy, takich jak CoverHorizontal. – modiX

+0

tak, zgadzam się z tobą. powinien być dostępny. – Mehul

7

Odpowiedź Mehul jest poprawna, ale można też zrobić to tak, jak chcesz. Z instantiateViewController (withIndentifier: String)

To jak to zrobić:

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) 
Powiązane problemy