因此,当我单击另一个View Controller中的按钮时,应该显示下一个View Controller。但是,单击按钮时,即使其中包含内容,它也只会以黑屏显示下一个View Controller。我该如何解决?
我确实知道已经问过类似的问题,但是没有一个问题帮助我解决了这个问题。
按钮点击的代码:
@IBAction func onSignUp(_ sender: Any) {
presentDetail(SignUpViewController())
}
呈现下一个View Controller和动画代码:
extension UIViewController {
func presentDetail(_ viewControllerToPresent: UIViewController) {
let transition = CATransition()
transition.duration = 0.25
transition.type = CATransitionType.push
transition.subtype = CATransitionSubtype.fromRight
self.view.window!.layer.add(transition, forKey: kCATransition)
self.present(viewControllerToPresent, animated: false)
}
func dismissDetail() {
let transition = CATransition()
transition.duration = 0.25
transition.type = CATransitionType.push
transition.subtype = CATransitionSubtype.fromLeft
self.view.window!.layer.add(transition, forKey: kCATransition)
dismiss(animated: false)
}
}
为澄清起见,presentDetail函数假设要向下一个View Controller展示动画(如右图所示),如代码所示。
答案 0 :(得分:1)
在演示它之前,您需要从Storyboard实例化目标ViewController。
@IBAction func onSignUp(_ sender: Any) {
presentDetail(
storyboard?.instantiateViewController(withIdentifier: "putyourIdentifierhere"))
}
instantiateViewController函数返回要显示的Viewcontroller。