如何在panGesture上查看控制器

时间:2016-08-29 11:25:37

标签: ios swift segue

我试图转向视图控制器。 segue的标识符是" Orange" (另一个视图控制器只是一个橙色视图)。视图控制器通过故事板进行查看,并连接到主视图控制器中的图像视图。 我想用平移手势识别器触发它。因此,当检测到平移时,它只是偏移到视图控制器。

这是我的尝试:

@IBOutlet var panGesture: UIPanGestureRecognizer!

@IBAction func onPan(sender: UIPanGestureRecognizer) {
    if panGesture.state == .Ended {
        print("panned")
    performSegueWithIdentifier("Orange", sender: sender)
    }
}

但是,这不起作用。我知道它确实检测到了泛,但它没有执行segue。

我阅读了如何从IOS - How to segue programmatically using swift

呈现segue

3 个答案:

答案 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

步骤2:选择segue的类型  

步骤3:选择segue并设置标识符

您需要执行segue的地方只需致电self.performSegueWithIdentifier("test", sender: nil)

抱歉英语不好

答案 2 :(得分:1)

Orange必须是故事板中segue的标识符,而不是视图控制器标识符。

如果您的segue标识符设置正确,请尝试测试您的手势回调是否在主线程中。

请在评论中告诉我您有问题。