2017-12-22 9 views
1

내 ViewController에서 SWRevealController Delegate을 호출하여 프로그래밍 방식으로 SWRevealController를 사용하려고하지만 viewDidLoad()에 다음을 추가하면 barButtonItem이 작동하지 않고 addGestureRecognizer(self.revealViewController().panGestureRecognizer())에 도달하면 앱이 중단됩니다.SWRevealController 프로그래밍 방식으로

navigationItem.leftBarButtonItem = UIBarButtonItem(image: #imageLiteral(resourceName: "menu2-black-32").withRenderingMode(.alwaysOriginal), style: .plain, target: self.revealViewController(), action: #selector(SWRevealViewController.revealToggle(_:))) 
     self.view.addGestureRecognizer(self.revealViewController().panGestureRecognizer()) 

이 코드 내 viewcontrollers의 하나는 다른 사람의 아무도 작동으로이 문제를 일으키는 원인을 확실하지 않다 : 아래 viewDidLoad의 코드입니다.

고맙습니다.

편집 :

if self.revealViewController() != nil { 
     navigationItem.leftBarButtonItem = UIBarButtonItem(image: 
     #imageLiteral(resourceName: "menu2-black- 
     32").withRenderingMode(.alwaysOriginal), style: .plain, target: 
     self.revealViewController(), action: 
     #selector(SWRevealViewController.revealToggle(_:))) self.view.addGestureRecognizer(self.revealViewController().panGestureRecognizer()) 
     } 

그러나 나는 이유는 전무 확실하지 않다 ... :

)이 (내 self.revealViewController 것 같은데 내가 같이하는 코드를 편집 한 경우 무기 호입니다 당신이 추가 할 수 있습니다 ..

+0

는'revealViewController()'무엇 menuButton (UIBarButtonItem)을 사용자 정의 할 수 있습니다 잘 작동? 코드를 게시 할 수 있습니까? –

답변

0

은 첫째로 당신의 viewDidLoad에서 바 버튼

@IBOutlet weak var menuButton: UIBarButtonItem! 

를 작성해야 하나

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

이 당신은 또한

+0

하지만 문제는 내 'self.revealController'가 nil이므로 코드가 실행되지 않습니다. – a2b123

+0

revealcontroller 클래스를 추가 했습니까? –