Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

SWRevealViewController not toggle with swift 3

Tags:

ios

swift3

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?

like image 697
Benjamin RD Avatar asked Jan 19 '26 06:01

Benjamin RD


1 Answers

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!

like image 93
Pro Avatar answered Jan 21 '26 21:01

Pro



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!