[英]Disable Tap Gesture on Child View Controller? How to determine Is it a PanGesture or TapGesture?
[英]How to segue to view controller on panGesture
我正在嘗試使用視圖控制器。 segue的標識符是“Orange”(另一個視圖控制器只是一個橙色視圖)。 視圖控制器通過故事板進行查看,並連接到主視圖控制器中的圖像視圖。 我想用平移手勢識別器觸發它。 因此,當檢測到平移時,它只是偏移到視圖控制器。
這是我的嘗試:
@IBOutlet var panGesture: UIPanGestureRecognizer!
@IBAction func onPan(sender: UIPanGestureRecognizer) {
if panGesture.state == .Ended {
print("panned")
performSegueWithIdentifier("Orange", sender: sender)
}
}
但是,這不起作用。 我知道它確實檢測到了泛,但它沒有執行segue。
我讀了如何從IOS呈現segue - 如何使用swift以編程方式進行segue
嘗試通過實例化呈現ViewController: -
確保在第一個VC中嵌入了導航控制器
為ViewController提供StoryBoardID: - 在故事板中選擇要呈現的ViewController
- > Identity Inspector - > 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導航實例化而不是performSegueWithIdentifier("Orange", sender: sender)
因為這樣你就可以向后傳輸那些viewControllers數據,在大多數情況下也可以防止內存泄漏。
Orange
必須是故事板中segue的標識符,而不是視圖控制器標識符。
如果你的segue標識符設置正確,請嘗試測試你的手勢回調是否在主線程中。
請在評論中告訴我您有問題。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.