Добавление кнопки гамбургера в SWRevealViewController в Swift

В приложении, которое я делаю, у меня есть боковое меню, для создания которого я использовал шаблон SWRevealViewController. Я сделал свою собственную анимированную кнопку, чтобы она была кнопкой меню гамбургера, поэтому при ее нажатии открывается боковое меню. Проблема в том, что я не могу понять, как подключить мою анимированную кнопку к SWRevealViewController.

Вот код кнопки, который я сделал.

Анимированная кнопка

self.button = HamburgerButton(frame: CGRectMake(0, 0, 30, 30))
    self.button.addTarget(self, action: #selector(home.toggle(_:)), forControlEvents:.TouchUpInside)

    let refreshButton = UIBarButtonItem(barButtonSystemItem: UIBarButtonSystemItem.Refresh,
    target: self, action: #selector(home.buttonMethod))
    navigationItem.leftBarButtonItem = button

и вот кнопка, которая использовалась для SWRevealViewController

override func viewDidLoad() {
    super.viewDidLoad()

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

}

Я провел много исследований, но просто не могу понять, как это сделать. Мне нужна кнопка, которую я сделал, которая является первым кодом, для доступа к SWRevealViewController и для открытия и закрытия бокового меню, а не кнопка, которая является вторым кодом, поставляемым с шаблоном SWRevealViewController. Любая помощь будет потрясающей!


person Doughnut Man    schedule 14.08.2016    source источник


Ответы (1)


Вот как я это делаю. Вы можете адаптировать это к своим потребностям.

let singleTap = UITapGestureRecognizer(target: self, action: #selector(tapDetected))
singleTap.numberOfTapsRequired = 1
sideMenuButton.userInteractionEnabled = true
sideMenuButton.addGestureRecognizer(singleTap)

func tapDetected() {
    self.revealViewController().revealToggle(self)
}
person David    schedule 14.08.2016
comment
Это дает мне ошибку, что tapDetetected является Object-C. есть ли что-нибудь, что я могу изменить, чтобы работать быстро? - person Doughnut Man; 14.08.2016
comment
Я понял!! ты был прав. Мне просто пришлось возиться с этим. Спасибо чувак! - person Doughnut Man; 15.08.2016