Подтвердить что ты не робот

Как настроить пользовательский диспетчер Modal View, представляющий анимацию?

Вместо установки uiviewcontroller modalTransitionStyle, я хочу добавить CAAnimation (или некоторые другие вещи). Этот код может выполнять пользовательскую анимацию в navigationController

CATransition* transition = [CATransition animation];
          transition.duration = 0.4;
          transition.type = kCATransitionFade;
          transition.subtype = kCATransitionFromBottom;
          [self.navigationController.view.layer addAnimation:transition forKey:kCATransition];
          [self.navigationController pushViewController:adjustViewController animated:NO];

Как я могу реализовать его в Modal View Controller?

4b9b3361

Ответ 1

Вам просто нужно добавить переход к слою окна и представить свой контроллер, а не нажимать его:

     CATransition* transition = [CATransition animation];
     transition.duration = 1;
     transition.type = kCATransitionFade;
     transition.subtype = kCATransitionFromBottom;
     [self.view.window.layer addAnimation:transition forKey:kCATransition];
     [self presentViewController:adjustViewController animated:NO completion:nil];

Ответ 2

Быстрая версия

let viewController = YourViewController()
let transition = CATransition()
transition.duration = 0.5
transition.type = kCATransitionFade
transition.subtype = kCATransitionFromBottom
view.window!.layer.add(transition, forKey: kCATransition)
present(viewController, animated: false, completion: nil)

Ответ 3

Из руководства по разработке яблока:

Представление контроллера просмотра с использованием пользовательских анимаций

Чтобы представить контроллер представления с помощью пользовательских анимаций, выполните следующие действия в методе действий существующих контроллеров представлений:

  • Создайте контроллер представления, который вы хотите представить.

  • Создайте свой настраиваемый объект делегирования делегата и назначьте его свойству changeingDelegate. Методы вашего делегата-переходника должны создавать и возвращать ваши пользовательские объекты аниматора по запросу.

  • Вызвать метод presentViewController: анимированный: завершение: для представления контроллера представления.

...