当在两个 UIViewControllers 之间调用 segue 时,屏幕需要从右向左滑动
When a segue is called between two UIViewControllers screen needs to slide from right to left
我正在处理一个在 swift 3 中完成的项目,我使用方法 performSegueWithIdentifier
在两个视图控制器之间调用了一个 segue。虽然它指向所需的 UIViewController
,但屏幕仅从底部滑动到顶部(默认情况下)。我的要求是确保在调用此 segue 后屏幕从右向左滑动。代码如下:
func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
if tableView == self.categoryTableView {
performSegue(withIdentifier: "showBrowsVC", sender: nil)
}
}
- 确保您的 ViewController 已嵌入 NavigationController。
- 确保您为故事板中的 segue 选择了 Show 而不是 Present。
而不是使用 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?
}
您也可以使用 Custom Transitions
来实现类似的目的。
参考:https://github.com/pgpt10/Custom-Animator如何在视图控制器中实现自定义转换。
我正在处理一个在 swift 3 中完成的项目,我使用方法 performSegueWithIdentifier
在两个视图控制器之间调用了一个 segue。虽然它指向所需的 UIViewController
,但屏幕仅从底部滑动到顶部(默认情况下)。我的要求是确保在调用此 segue 后屏幕从右向左滑动。代码如下:
func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
if tableView == self.categoryTableView {
performSegue(withIdentifier: "showBrowsVC", sender: nil)
}
}
- 确保您的 ViewController 已嵌入 NavigationController。
- 确保您为故事板中的 segue 选择了 Show 而不是 Present。
而不是使用 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?
}
您也可以使用 Custom Transitions
来实现类似的目的。
参考:https://github.com/pgpt10/Custom-Animator如何在视图控制器中实现自定义转换。