2017-05-28 11 views
3

スワイプジェスチャーを使用してタブバーを移動したい。それを行う最も簡単な方法は何ですか?私はこのようなものを試しました...スワイプジェスチャーを使用してタブバーを移動する

import UIKit 

class postAdViewController: UIViewController { 

    override func viewDidLoad() { 
     super.viewDidLoad() 
     var leftSwipe = UISwipeGestureRecognizer(target: self, action: Selector("handleSwipes:")) 
     view.addGestureRecognizer(leftSwipe)  
    } 

    func handleSwipes(sender:UISwipeGestureRecognizer) { 
     if (sender.direction == .left) { 
      let storyboard = UIStoryboard(name: "Main", bundle: nil) 
      let vc = storyboard.instantiateViewController(withIdentifier: "favourireviewcontroller") as! UIViewController 
      self.present(vc, animated: true, completion: nil) 
     } 
     if (sender.direction == .right) { 

     } 
} 

私は右にスワイプしようとすると何も起こりません。

認識されないセレクターがインスタンスに送信される次のエラーメッセージが左スワイプアプリクラッシュ0x7f924380a730

答えて

0

Swift 3セレクタの構文を使用して試してみてください。そう

override func viewDidLoad() { 
    super.viewDidLoad() 

    nextButton.layer.cornerRadius = 7 

    let leftSwipe = UISwipeGestureRecognizer(target: self, action: #selector(handleSwipes(_:)) 
    //leftSwipe.direction = .right 
    view.addGestureRecognizer(leftSwipe) 
} 



func handleSwipes(_ sender: UISwipeGestureRecognizer) { 
    if (sender.direction == .left) { 
     let storyboard = UIStoryboard(name: "Main", bundle: nil) 
     let vc = storyboard.instantiateViewController(withIdentifier: "favourireviewcontroller") as! UIViewController 
     self.present(vc, animated: true, completion: nil) 
    } 

    if (sender.direction == .right) { 

    } 
} 
よう

let leftSwipe = UISwipeGestureRecognizer(target: self, action: #selector(handleSwipes(_:)) 

Swift 3は、コンパイラがfunctionを指定しているかどうかを実際に確認できるようにするために、この機能を導入しました。したがって、以前の概念よりもはるかに安全です。まあ

1

あなたが.left.rightためswipeGestureRecognizerを実装し、その後tabBarController?.selectedIndexで動作するはずですtabBarあなたをナビゲートしたい場合は、このような何か:

let swipeRight = UISwipeGestureRecognizer(target: self, action: #selector(swiped)) 
swipeRight.direction = UISwipeGestureRecognizerDirection.right 
self.view.addGestureRecognizer(swipeRight) 

let swipeLeft = UISwipeGestureRecognizer(target: self, action: #selector(swiped)) 
swipeLeft.direction = UISwipeGestureRecognizerDirection.left 
self.view.addGestureRecognizer(swipeLeft) 

func swiped(_ gesture: UISwipeGestureRecognizer) { 
    if gesture.direction == .left { 
     if (self.tabBarController?.selectedIndex)! < 2 { // set your total tabs here 
      self.tabBarController?.selectedIndex += 1 
     } 
    } else if gesture.direction == .right { 
     if (self.tabBarController?.selectedIndex)! > 0 { 
      self.tabBarController?.selectedIndex -= 1 
     } 
    } 
} 
関連する問題