SWReveal с UIB-кнопкой

Поэтому я хотел добавить слайд-меню в мое приложение, где, если вы нажмете кнопку, меню будет скользить слева. После некоторого исследования я нашел руководство по использованию SWRevealViewController для создания выдвижного меню, но я быстро понял, что в видео и почти во всех других руководствах для SWReveal используется UIBarButtonItem для кнопки, которую вы нажимаете, чтобы открыть меню. Так что мне нужна помощь, чтобы выяснить, как сделать то, что говорится в руководстве, сделать для UIBarButtonItem, но для UIButton вместо.

Допустим, есть UIBarButtonItem называется OpenSideBar. Руководство говорит сделать это в viewDidLoad метод:

OpenSideBar.target = self.revealViewController()
OpenSideBar.action = Selector("revealToggle")

Так что я не совсем уверен, что это делает, но мне нужно найти способ сделать это для UIButton, Объяснение того, что он делает, также будет оценено, потому что парень в видео не особо объяснил.

Кнопка в настоящее время является розеткой:

@IBOutlet weak var OpenSideBar: UIButton!

но, пожалуйста, укажите, если я должен воссоздать его как действие вместо этого и делать вещи в функции вместо viewDidLoad метод. Заранее спасибо.

PS Файл SWViewController.h можно найти на github по этой ссылке:

https://github.com/PCmex/lift-side-memu-in-swift-3/blob/master/memuDemo/SWRevealViewController.h

и SWViewController.m по этой ссылке:

https://github.com/PCmex/lift-side-memu-in-swift-3/blob/master/memuDemo/SWRevealViewController.m

1 ответ

Решение

Линия OpenSideBar.target = self.revealViewController() устанавливает цель для вашего UIBarButtonItem и линия OpenSideBar.action = Selector("revealToggle") устанавливает действие, которое необходимо выполнить при нажатии на указанную кнопку.

Вы можете достичь этой функциональности, используя UIButton одним из двух способов. Вы можете установить целевое действие для UIButton так же, как вы бы для `UIBarButtonItem. Разница лишь в том, что они оба имеют разный синтаксис. Вы будете делать это так

OpenSideBar.addTarget(self.revealViewController(), action: #selector(SWRevealViewController.revealToggle(_:)), for: .touchUpInside)

или вы можете подключить свой @IBAction и в вашем методе используйте

self.revealViewController().revealToggle(self)
Другие вопросы по тегам