Reputation: 12034
I was using the code with swift 2.1
override func viewDidLoad() {
super.viewDidLoad()
if revealViewController() != nil {
menuButton.target = revealViewController()
menuButton.action = "revealToggle:"
view.addGestureRecognizer(self.revealViewController().panGestureRecognizer())
}
}
And now, I'm using Swift3
with:
override func viewDidLoad() {
super.viewDidLoad()
if revealViewController() != nil {
menuButton.target = revealViewController()
menuButton.action = #selector(SWRevealViewController.revealToggle(_:))
view.addGestureRecognizer(self.revealViewController().panGestureRecognizer())
}
}
The codes with the version 2.1 works perfect, but in action revealToggle
is not executed in swift3
.
Someone has an idea how to solve it?
Upvotes: 3
Views: 3820
Reputation: 3003
Here is the solution for SWRevealViewController in Swift 3:
if revealViewController() != nil {
menuButton.target = self.revealViewController()
menuButton.action = #selector((SWRevealViewController.revealToggle) as (SWRevealViewController) -> (Void) -> Void) // Swift 3 fix
view.addGestureRecognizer(self.revealViewController().panGestureRecognizer())
}
Good Luck!
Upvotes: 4