2017-09-11 8 views
0

私は自分のアプリで新しい投稿を作成するために振るジェスチャーを使用しています。どのようにオンボード画面の中で振るジェスチャーを停止するには?iOSでシェイクジェスチャーを止めるには?

override func motionEnded(_ motion: UIEventSubtype, 
           with event: UIEvent?) { 
    if motion == .motionShake { 
     if self.revealtype == "opened" { 
      self.revealViewController().revealToggle(self) 
     } 

     datearray.removeAll() 

     let dateFormatter = DateFormatter() 
     dateFormatter.dateFormat = "dd-MM-yyyy" 
     let monthdate = dateFormatter.string(from: NSDate() as Date) 

     datearray.append(monthdate) 
     selectnsdate = Date() 
     print("success") 

     let ivc = self.storyboard!.instantiateViewController(withIdentifier: "selectpost") as? SelectPost 
     ivc?.shake = true 
     self.navigationController!.pushViewController(ivc!, animated: true) 
    } 
} 

答えて

0

viewWillAppearにシェイクジェスチャーを追加し、viewDidDisappear viewControllerのメソッドでジェスチャーを削除できます。したがって、別のビューコントローラーを押すと、ジェイクが振る舞いません。

0

あなたは、単にあなたのオンボーディングビューコントローラで次のように実装することでmotionShakeイベントを飲み込むことによって、これを達成することができるはずです。

override func motionEnded(_ motion: UIEventSubtype, 
         withEvent: UIEvent?) { 
    if motion != .motionShake { 
     super.motionEnded(motion, withEvent: withEvent) 
    } 
} 

(このメソッドのデフォルトの実装は、メッセージを転送する」というmotionEnded状態のドキュメントレスポンダーチェーンをアップ ")

関連する問題