2016-09-13 39 views
1

那麼這裏好好嘗試一下工作是我的代碼 我想爲左輕掃,右輕掃 兩種功能工作,但只有當我刷卡兩次,兩個功能...第一次什麼也沒有發生 謝謝!迅速刷卡識別器在第一次刷卡

override func viewWillAppear(animated: Bool) { 

    SwipeGesture.addTarget(self, action: "addSwipe") 
} 

func addSwipe() { 
    let directions: [UISwipeGestureRecognizerDirection] = [.Right, .Left] 
    for direction in directions { 
     let gesture = UISwipeGestureRecognizer(target: self, action: Selector("handleSwipe:")) 
     gesture.direction = direction 
     self.view.addGestureRecognizer(gesture) 
    } 
} 

func handleSwipe(sender: UISwipeGestureRecognizer) { 
    switch sender.direction { 
    case UISwipeGestureRecognizerDirection.Right: 
     print("swipe to close") 
     self.dismissViewControllerAnimated(true, completion: nil) 

    case UISwipeGestureRecognizerDirection.Left: 
     print("Swiped left") 

     let storyBoard : UIStoryboard = UIStoryboard(name: "Main", bundle:nil) 
      let resultViewController = storyBoard.instantiateViewControllerWithIdentifier("chatAlbumViewController") as UIViewController 
      self.presentViewController(resultViewController, animated:true, completion:nil) 
    default: 
     break 
    } 
} 
+0

這是什麼代碼:'SwipeGesture。 addTarget(self,action:「addSwipe」)什麼是SwipeGesture?我將addSwipe中的代碼添加到viewWillAppear,它看起來不像您將重複使用該方法並始終希望它在視圖中加載 – Scriptable

+0

@IBOutlet var SwipeGesture:UISwipeGestureRecognizer! –

回答

0

,你需要刷卡兩次的原因是監守你有一個手勢識別器,增加了手勢recognisors,所以先刷卡登記它們,然後第二個實際上是你想要做什麼。

修正,更改此代碼:

override func viewWillAppear(animated: Bool) { 

    SwipeGesture.addTarget(self, action: "addSwipe") 
} 

override func viewWillAppear(animated: Bool) { 

    self.addSwipe() 
} 

,並卸下出口的另外一個,它是沒有必要的

+0

非常感謝你的回答!完美的作品 –

+0

好極了,如果這回答你的問題,請點擊答案旁邊的灰色勾號將其標記爲已接受的答案。謝謝 – Scriptable