Benjamin RD
Benjamin RD

Reputation: 12034

SWRevealViewController not toggle with swift 3

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

Answers (1)

Pro
Pro

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

Related Questions