SWRevealController Программно

Я пытаюсь использовать SWRevealController программно, вызывая SWRevealController Delegate в моем ViewController, но когда я добавляю следующее viewDidLoad() barButtonItem не работает, и приложение падает при попадании addGestureRecognizer(self.revealViewController().panGestureRecognizer()), Ниже приведен код в viewDidLoad:

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() равен нулю, когда я отредактировал код так:

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())
        }

Но я не уверен, почему его ноль.....

1 ответ

Во-первых, вам нужно создать кнопку панели

 @IBOutlet weak var menuButton: UIBarButtonItem!

В viewDidLoad вы можете добавить этот

 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())
         }

Это прекрасно работает, вы также можете настроить menuButton(UIBarButtonItem)

Другие вопросы по тегам