2016-04-09 18 views
0
override func viewDidAppear(animated: Bool) { 

    view.userInteractionEnabled = true 
    let pinchGesture:UIPinchGestureRecognizer = UIPinchGestureRecognizer(target: self, action: "pinchGesture") 
    view.addGestureRecognizer(pinchGesture) 

    let tap: UITapGestureRecognizer = UITapGestureRecognizer(target: self, action: "dismissKeyboard") 
    view.addGestureRecognizer(tap) 
} 

func dismissKeyboard() { 
    view.endEditing(true) 
} 

func pinchGesture(){ 

    self.performSegueWithIdentifier("trick1Segue", sender: self) 

} 

在我的iOS應用程序中,我想在屏幕上執行捏合手勢時轉換到不同的視圖控制器。 抽頭手勢是當鍵盤區嘗試在<**>上演示<**>,同時演示正在進行中。雖然使用swift從一個視圖控制器到另一個執行segue

外螺紋當運行該應用程序以關閉該鍵盤,我得到的錯誤消息:

「試圖呈現< **>上< **>而呈現正在進行中「

新視圖控制器出現,但會打開兩次,時間很短。查了很多博客,但找不到解決方案,請幫忙!!!

回答

0

問題是可以多次調用pinchGesture。你應該將屬性添加到您的viewController保持的事實,你已經在縮放手勢行動軌跡:

var segueInProcess = false 

func pinchGesture() { 
    if !segueInProcess { 
     self.performSegueWithIdentifier("trick1Segue", sender: self) 
     segueInProcess = true 
    } 
} 
+0

非常感謝,我一直在努力解決這個問題很長一段時間瞭解了! – user3655266

0

手勢識別與不同的狀態多次調用。你可以做的是檢查stateUIPinchGestureRecognizerpinchGesture()的財產。

相關問題