我正在处理一个在swift 3中完成的项目,我使用方法performSegueWithIdentifier
在两个视图控制器之间调用segue。虽然它指向所需的UIViewController
,但屏幕仅从下到上滑动(默认情况下)。我的要求是确保在调用segue后屏幕从右向左滑动。代码如下:
func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
if tableView == self.categoryTableView {
performSegue(withIdentifier: "showBrowsVC", sender: nil)
}
}
答案 0 :(得分:1)
答案 1 :(得分:1)
而不是使用performSeguewithIdentifier
将viewController与这样的动画一起使用。
func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
if tableView == self.categoryTableView {
let transition = CATransition()
transition.duration = 0.5
transition.type = kCATransitionPush
transition.subtype = kCATransitionFromRight
view.window!.layer.add(transition, forKey: kCATransition)
let secVC = self.storyboard?.instantiateViewController(withIdentifier: "secViewController") as! secViewController
secVC.category = home
present(secVC!, animated: false, completion: nil)
}
}
在secViewController.swift中,您应该有一个要传递值的变量
class secViewController: UIViewController {
var category:Bool?
}
答案 2 :(得分:1)
你也可以使用Custom Transitions
来实现这样的目标。
请参阅:https://github.com/pgpt10/Custom-Animator了解如何在视图控制器中实现自定义转换。