2016-09-22 99 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。在我嘗試了你的代碼後,左邊的菜單不顯示,並且它轉到了主視圖控制器。 –