我试图转向视图控制器。 segue的标识符是" Orange" (另一个视图控制器只是一个橙色视图)。视图控制器通过故事板进行查看,并连接到主视图控制器中的图像视图。 我想用平移手势识别器触发它。因此,当检测到平移时,它只是偏移到视图控制器。
这是我的尝试:
@IBOutlet var panGesture: UIPanGestureRecognizer!
@IBAction func onPan(sender: UIPanGestureRecognizer) {
if panGesture.state == .Ended {
print("panned")
performSegueWithIdentifier("Orange", sender: sender)
}
}
但是,这不起作用。我知道它确实检测到了泛,但它没有执行segue。
呈现segue答案 0 :(得分:4)
尝试通过实例化呈现ViewController: -
确保您的第一个VC中嵌入了导航控制器
为您的ViewController提供一个StoryBoardID: - 在故事板中选择您想要呈现的<div ng-if="quantity > 0">
<button ng-click="quantity = quantity-1">-</button>
</div>
- &gt; Identity Inspector - &gt; StoryBoard ID 为您的VC提供一个故事板ID,例如:&#34; vc2SceneVC_ID&#34;
像这样实例化并推送VC: -
ViewController
导航控制器的Apple文档: - UINavigationController Apple Doc
PS: - 首选实例化通过ViewControllers导航而不是@IBAction func onPan(sender: UIPanGestureRecognizer) {
if panGesture.state == .Ended {
print("panned")
let vc2Scene = self.storyboard?.instantiateViewControllerWithIdentifier("vc2SceneVC_ID") as! VC2
self.navigationController?.pushViewController(vc2Scene, animated: true)
}
因为通过这种方式,您可以在这些视图控制器之间传输数据,在大多数情况下也可以防止内存泄漏。
答案 1 :(得分:2)
步骤1:从第一个ViewController(显示View Controller实验室)中控制+单击并拖动到第二个ViewController
您需要执行segue的地方只需致电self.performSegueWithIdentifier("test", sender: nil)
抱歉英语不好
答案 2 :(得分:1)
Orange
必须是故事板中segue的标识符,而不是视图控制器标识符。
如果您的segue标识符设置正确,请尝试测试您的手势回调是否在主线程中。
请在评论中告诉我您有问题。