如何在leftBarButtonItem上更改pushViewController上的动画方向



我已经向NavigationBar添加了一个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)
}

要在推送到另一个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

您不能更改UINavigationController的方向。为了实现这一点,你必须自己创造它。如果您想实现菜单,可以查看SideMenu。

相关内容

  • 没有找到相关文章

最新更新