带有 UIButton 的 SWReveal

SWReveal with a UIButton

所以我想在我的应用程序中添加一个滑动菜单,如果您点击一个按钮,菜单就会从左侧滑动。经过一些研究,我找到了使用 SWRevealViewController 创建滑出菜单的指南,但我很快意识到该视频以及几乎所有其他 SWReveal 指南都使用 UIBarButtonItem 作为您点击以显示菜单的按钮.所以我需要帮助的是弄清楚如何做指南所说的 UIBarButtonItem,而不是 UIButton

假设有一个 UIBarButtonItem 叫做 OpenSideBar。该指南说在 viewDidLoad 方法中执行此操作:

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

所以我不太确定它的作用,但我需要找到一种方法来实现 UIButton。对它的作用的解释也将不胜感激,因为视频中的人没有做太多解释。

该按钮当前是插座:

@IBOutlet weak var OpenSideBar: UIButton!

但请指定我是否应该将其重新创建为一个动作,并在函数中执行操作而不是 viewDidLoad 方法。 提前致谢。

P.S。 SWViewController.h 文件可以在 github 上找到 link:

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

和 SWViewController.m 在这个 link:

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

OpenSideBar.target = self.revealViewController() 行设置了 UIBarButtonItem 的目标,第 OpenSideBar.action = Selector("revealToggle") 行设置了点击上述按钮后需要执行的操作。

您可以使用 UIButton 以两种方式之一实现此功能。 您可以像为 `UIBarButtonItem 一样为 UIButton 设置目标操作。唯一的区别是它们都有不同的语法。你会这样做

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

或者您可以连接您的 @IBAction 并在您的方法中使用

self.revealViewController().revealToggle(self)