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)