2015-08-17 4 views
10

Я использую presentViewController изменить с точки зрения к другой без навигации контроллера, как:Как изменить presentViewController анимация перехода

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

Как изменить переход? Я хочу использовать ту же анимацию, что и контроллер навигации.

я могу использовать другие переходы, но я не считаю переход Я хочу здесь код я использую

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

Его ответили здесь очень хорошо, очень старый вопрос, хотя. : http://stackoverflow.com/questions/5004102/is-there-a-way-to-change-the-animation-style-of-a-modal-view-controller-appearan – lazyDroid

+0

@lazyDroid благодарит, Мне удалось добавить код в сообщение, я могу изменить анимацию, но я не нахожу нужную анимацию. –

+0

Используйте навигационный контроллер. Вы можете удалить все, что вам не нужно, и получить анимацию. –

ответ

9

Для тех, кто делает это на iOS8, это то, что я должен был сделать:

У меня есть быстрый файл класса под названием SettingsView.swift и .xib-файл с именем SettingsView.xib. Я бегу это в MasterViewController.swift (или любой другой вид контроллер действительно открыть второй контроллер представления)

@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

Отличный ответ .. – Mehul

+0

Эта коллекция анимаций, предоставляемых Apple, смехотворна. Он обеспечивает подавляющие и едва практические вещи, такие как PartialCurl, но пропускает основные вещи, такие как CoverHorizontal. – modiX

+0

да, я согласен с тобой. он должен быть доступен. – Mehul

7

Ответ Mehul является правильным, но вы также можете сделать это так, как вы хотите. С instantiateViewController (withIndentifier: строка)

Это, как я это делаю:

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) 
Смежные вопросы