【问题标题】:how to change navigation animation to left to right in swift 4?如何在swift 4中将导航动画从左到右更改?
【发布时间】:2018-07-07 20:14:22
【问题描述】:

我的应用程序中有一个导航栏,我将导航更改为模态显示但是当用户转到目标视图控制器时,我希望导航动画从左到右

这是我在第一个视图控制器中的代码

    @IBAction func showProfilePage(_ sender: UIBarButtonItem) {


    self.performSegue(withIdentifier: "showprofile", sender: self)


}

我为此阅读了苹果网站并使用了此功能

private func navigationController(_ navigationController: UINavigationController,
                                   willShow viewController: ProfileViewController,
                                   animated: Bool) {




}

但它不起作用所以我应该怎么做才能从左到右更改导航动画?

【问题讨论】:

    标签: ios animation uinavigationcontroller swift4


    【解决方案1】:

    试试这个。

    let storyBoard : UIStoryboard = UIStoryboard(name: "PatientCheckout", bundle:nil)
    let controller = storyBoard.instantiateViewController(withIdentifier: "PatientCheckoutViewController") as UIViewController
    
    let transition = CATransition.init()
    transition.duration = 0.45
    transition.timingFunction = CAMediaTimingFunction.init(name: kCAMediaTimingFunctionDefault)
    transition.type = kCATransitionPush //Transition you want like Push, Reveal
    transition.subtype = kCATransitionFromLeft // Direction like Left to Right, Right to Left
    transition.delegate = self
    view.window!.layer.add(transition, forKey: kCATransition)
    self.navigationController?.pushViewController(controller, animated: true)
    

    【讨论】:

    • 感谢您的回答!请对此答案进行更多解释。仅代码的答案往往会被标记为低质量。
    • 谢谢,这很有用,一切看起来都很好但是这个页面不会出现在当前页面的前面
    • 将 self.navigationController?.view!.layer.add(transition, forKey: kCATransition) 替换为 view.window!.layer.add(transition, forKey: kCATransition)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-11
    • 1970-01-01
    • 2018-07-01
    • 1970-01-01
    • 1970-01-01
    • 2020-02-07
    相关资源
    最近更新 更多