2017-05-28 6 views
3

Ich möchte mit Swipe-Gesten zwischen meiner Tab-Leiste navigieren. Was ist der einfachste Weg das zu tun? Ich habe so etwas versucht ...Navigieren zwischen den Tab-Leiste mit Wischgeste

Wenn ich versuche, nach rechts zu wischen passiert nichts. Die App stürzt ab, wenn die folgende Fehlermeldung verlassen Streichen nach

unerkannt Selektor gesendet Instanz 0x7f924380a730

Antwort

0

Versuchen die Swift 3 Selektors Syntax:

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

wie so

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) { 

    } 
} 

Swift 3 führte diese Funktion ein, um es dem Compiler zu ermöglichen, zu überprüfen, ob die von Ihnen angegebene function tatsächlich existiert. Es ist daher viel sicherer als die vorherigen Konzepte.

1

Nun, wenn Sie durch Sie navigieren möchten tabBar Sie eine swipeGestureRecognizer für .left und .right und arbeiten dann mit dem tabBarController?.selectedIndex implementieren sollten, etwa so:

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 
     } 
    } 
} 
Verwandte Themen