2015-05-19 5 views
0

Можно ли представить контроллер вида с использованием addChildViewController? Я хочу представить вид UIviewcontroller's так, чтобы он перекрывал все виды под иерархией окон. Я хочу сделать это, не используя self.presentViewcontroller, потому что я хочу построить свою собственную анимацию вместо использования предустановленного флип вверх/вниз/и т. Д. Я попытался использовать self.addChildViewcontroller(modal) и self.view.addSubView(modal.view), но он входит в мой ChildViewController. Когда я использовал self.view.window?.addSubview, приложение выйдет из строя.Как я могу представить пользовательский вид без использования presentViewController?

Можно ли представить UIViewcontroller с использованием addChildController?

Я включил образцы кода.

https://github.com/cuongta/testcode

override func viewDidLoad() { 
    super.viewDidLoad() 

    var childVC = ChildViewController() 
    var navVC = UINavigationController() 
    navVC.viewControllers = [childVC] 
    self.addChildViewController(navVC) 
    self.view.addSubview(navVC.view) 
} 
+0

Не могли бы вы опубликовать сбой фрагмент кода здесь и точно определить сообщения об ошибках? Было бы проще помочь вам вместо загрузки проекта где-то – Azat

+0

вы можете использовать UIViewControllerAnimatedTransitioning, класс UIViewControllerTransitioningDelegate, чтобы сделать собственную пользовательскую анимацию и использовать presentViewcontroller – Mukesh

+0

, вы также можете проверить это: https://github.com/nferocious76/TestModal i didn Не используйте стандартную презентацию, в которой Apple предоставила просто простую анимацию. – nferocious76

ответ

1

Вы должны использовать UIViewControllerAnimatedTransitioning и UIViewControllerTransitioningDelegate, чтобы достичь того, чего вы хотите.

Я думаю, что это лучший способ в соответствии с Apple.

Принять протокол UIViewControllerAnimatedTransitioning в объектах , которые реализуют анимацию для пользовательского перехода в вид контроллера.

Методы в этом протоколе позволяют определить объект аниматора, который создает анимацию для включения или выключения монитора вида в фиксированном количестве времени. Создаваемые вами анимации с использованием этого протокола не должны быть интерактивными. Чтобы создать интерактивные переходы, , вы должны объединить объект аниматора с другим объектом, который контролирует время вашей анимации.

Вы можете скачать компании Apple Пример кодаhere