2017-05-08 146 views
2

所以我想给我的应用程序添加一个幻灯片菜单,如果你点击一个按钮,菜单从左边滑动。经过一番研究后,我发现了一个使用SWRevealViewController创建幻灯片菜单的指南,但我很快意识到视频和几乎所有其他SWReveal指南都使用UIBarButtonItem作为您点击以显示菜单的按钮。因此,我需要帮助的是确定如何执行指南为UIBarButtonItem做的事情,而不是UIButton用UIButton SWReveal

假设有一个名为OpenSideBar的UIBarButtonItem。该指南说,要做到这一点的方法viewDidLoad

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

所以我不能完全肯定做什么,但我需要找到一个方法来做到这一点的UIButton。解释它的功能也值得赞赏,因为视频中的人没有做太多的解释。

的按钮是目前一个出口:

@IBOutlet weak var OpenSideBar: UIButton! 

但请注明,如果我要重新创建为一个动作,而不是和功能,而不是viewDidLoad方法做的东西。 在此先感谢。

P.S.

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而行SWViewController.h文件可以在github在此链接中找到行OpenSideBar.action = Selector("revealToggle")设置在点击所述按钮时需要执行的动作。

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

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

,或者你可以联播你@IBAction和你的方法,使用

self.revealViewController().revealToggle(self) 
+0

谢谢!我没有任何错误再次运行之前,但现在我有一个运行时错误,说:“[LE.MapViewController OpenSideBar:]:无法识别的选择器发送到实例”后跟一串随机字母和数字,我是猜测是一个内存位置。任何想法为什么?我使用了第一个不需要连接'@ IBAction'的版本,因为当我尝试将它添加到子视图时,挂钩它会给我带来错误。 – RPatel99

+0

我将不得不看看这个类来指向有问题的一段代码。您必须使用其他信息编辑问题。 – Malik

+0

没关系,我发现只是故事板按钮仍然与@IBAction方法相关联。 – RPatel99