Как изменить направление анимации на pushViewController на leftBarButtonItem? - PullRequest
0 голосов
/ 11 декабря 2018

Я добавил leftBarButtonItem в панель навигации (вместе с NavigationController).LeftBarButtonItem находится на верхнем ViewController.

Когда я использую функцию pushViewController для перехода к следующему ViewController, анимация происходит справа налево, так же, как при нажатии кнопки на правой стороне панели навигации.

Как изменить направление анимации, чтобы оно двигалось слева направо, как, например, в Tinder при нажатии левой кнопки на панели навигации?

Вот код:

let profileButton = UIBarButtonItem(image: #imageLiteral(resourceName: "profile"), style: .plain, target: self, action: #selector(self.showProfile))
    self.navigationItem.leftBarButtonItem = profileButton

@objc func showProfile() {
    let profileViewController = storyboard?.instantiateViewController(withIdentifier: "profile") as! ProfileViewController
    self.navigationController?.pushViewController(profileViewController, animated: true)
}

Ответы [ 2 ]

0 голосов
/ 29 июля 2019

Для анимации при нажатии на другой viewController вы можете использовать CATransition

@objc func showProfile() {
    let profileViewController = storyboard?.instantiateViewController(withIdentifier: "profile") as! ProfileViewController
    let transition = CATransition()
    transition.duration = 0.5
    transition.timingFunction = CAMediaTimingFunction(name: CAMediaTimingFunctionName.easeInEaseOut)
    transition.type = CATransitionType.push
    transition.subtype = CATransitionSubtype.fromLeft       
    navigationController?.view.layer.add(transition, forKey: kCATransition)
    self.navigationController?.pushViewController(profileViewController, animated: true)
}

Вы можете изменить направление анимации как fromRight, fromTopfromBottom

0 голосов
/ 11 декабря 2018

Вы не можете изменить направление UINavigationController.Чтобы достичь этого, вам придется создать его самостоятельно.Если вы хотите реализовать меню, вы можете проверить SideMenu .

...