ios – 如何在panGesture上查看控制器

我正在尝试使用视图控制器. 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

解决方法

尝试通过实例化呈现ViewController: –

>确保您的First VC中嵌入了导航控制器
>为ViewController提供StoryBoardID: – 在故事板中选择要呈现的ViewController – >身份检查员 – > StoryBoard ID给你的VC一个故事板ID让我们说:“vc2SceneVC_ID”
>像这样实例化并推送VC: –

@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)

}

导航控制器的Apple文档: – UINavigationController Apple Doc

PS: – 首选实例化通过ViewControllers导航实例化而不是执行SegueWithIdentifier(“Orange”,发件人:发件人)因为通过这种方式,您可以在这些viewControllers之间传输数据,在大多数情况下也可以防止内存泄漏.

相关文章

UITabBarController 是 iOS 中用于管理和显示选项卡界面的一...
UITableView的重用机制避免了频繁创建和销毁单元格的开销,使...
Objective-C中,类的实例变量(instance variables)和属性(...
从内存管理的角度来看,block可以作为方法的传入参数是因为b...
WKWebView 是 iOS 开发中用于显示网页内容的组件,它是在 iO...
OC中常用的多线程编程技术: 1. NSThread NSThread是Objecti...