簡體   English   中英

如何在panGesture上查看控制器

[英]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數據,在大多數情況下也可以防止內存泄漏。

步驟1:從第一個ViewController(顯示View Controller實驗室)中控制+單擊並拖動到第二個ViewController

第2步:選擇segue的類型

步驟3:選擇segue並設置標識符

你需要執行segue的地方只需調用self.performSegueWithIdentifier("test", sender: nil)

抱歉英語不好

Orange必須是故事板中segue的標識符,而不是視圖控制器標識符。

如果你的segue標識符設置正確,請嘗試測試你的手勢回調是否在主線程中。

請在評論中告訴我您有問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM