如何更改导航控制器的根控制器出现在屏幕上的方式?
Posted
技术标签:
【中文标题】如何更改导航控制器的根控制器出现在屏幕上的方式?【英文标题】:How to change the way in which the root controller of a navigation controller is appearing on screen? 【发布时间】:2017-06-30 18:23:35 【问题描述】:导航控制器不是初始视图控制器。它在初始 VC 中被实例化,并提供了一个根控制器,即第二个 VC。当我调用当前视图控制器函数时,我无法更改这个新 VC 的呈现方式,它总是从底部出现。我没有找到如何让它从右到左。我试图改变谁从第二个 VC 到 nav con 调用 modalPresentaionStyle 并返回,但没有改变。 代码清单如下。感谢您的帮助。
@objc fileprivate func showRegisterScreen()
let registerAccountVC = RegisterAccountVC()
let navigationController = UINavigationController(rootViewController: registerAccountVC)
navigationController.modalPresentationStyle = .pageSheet
present(navigationController, animated: true, completion: nil)
【问题讨论】:
【参考方案1】:这将添加一个从右到左的自定义动画。
let transition = CATransition.init()
transition.duration = 0.4
transition.timingFunction = CAMediaTimingFunction.init(name: kCAMediaTimingFunctionEaseInEaseOut)
transition.type = kCATransitionPush
transition.subtype = kCATransitionFromRight
view.window?.layer.add(transition, forKey: nil)
present(navigationController, animated: false, completion: nil)
【讨论】:
以上是关于如何更改导航控制器的根控制器出现在屏幕上的方式?的主要内容,如果未能解决你的问题,请参考以下文章
以编程方式创建的 rootviewcontroller 未显示分配的 viewcontroller 的内容