2016-09-22 76 views
3

我所用的代码与SWIFT 2.1SWRevealViewController不与SWIFT 3

override func viewDidLoad() { 
     super.viewDidLoad() 

     if revealViewController() != nil { 
      menuButton.target = revealViewController() 
      menuButton.action = "revealToggle:" 

      view.addGestureRecognizer(self.revealViewController().panGestureRecognizer()) 
     } 
    } 

切换而现在,我使用Swift3有:

覆盖FUNC viewDidLoad中(){ super.viewDidLoad()

if revealViewController() != nil { 
     menuButton.target = revealViewController() 
     //menuButton.action = "revealToggle:" 
     menuButton.action = #selector(SWRevealViewController.revealToggle(_:)) 
     view.addGestureRecognizer(self.revealViewController().panGestureRecognizer()) 
    } 
} 

与版本2.1的代码作品完美,但在行动revealToggleswift3执行。

有人有一个想法如何解决它?

+0

你想通了吗?我有同样的问题,就像你所描述的... – Ivan

+0

我最终使用不同的库来实现侧面菜单功能:https://github.com/ykyouhei/KYDrawerController/。它在CocoaPods上可用,最好用Swift 3编写。 – Ivan

+1

最后,我决定使用:[https://github.com/jonkykong/SideMenu][1] [1]:https:// github。 com/jonkykong/SideMenu – MrMins

回答

4

这里是斯威夫特3 SWRevealViewController解决方案:

if revealViewController() != nil { 
     menuButton.target = self.revealViewController() 
     menuButton.action = #selector((SWRevealViewController.revealToggle) as (SWRevealViewController) -> (Void) -> Void) // Swift 3 fix 
     view.addGestureRecognizer(self.revealViewController().panGestureRecognizer()) 
    } 

祝您好运!

+0

非常感谢!永远寻找答案.. –

+0

不客气! – Pro

+0

你好兄弟Pro,我试着用你的代码。我的问题在这里http://stackoverflow.com/questions/42573338/swrevealviewcontroller-button-not-work-after-clicking-back-button-from-another-v。在我尝试了你的代码后,左边的菜单不显示,并且它转到了主视图控制器。 –