【问题标题】:SWReveal with a UIButton带有 UIButton 的 SWReveal
【发布时间】:2017-10-07 02:12:15
【问题描述】:

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

假设有一个名为 OpenSideBar 的UIBarButtonItem。该指南说要在viewDidLoad 方法中执行此操作:

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

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

该按钮当前是一个插座:

@IBOutlet weak var OpenSideBar: UIButton!

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

附: 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

【问题讨论】:

    标签: ios swift uibutton swrevealviewcontroller uibuttonbaritem


    【解决方案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)
    

    【讨论】:

    • 谢谢!在运行它之前我没有任何错误,但现在我有一个运行时错误,上面写着“-[LE.MapViewController OpenSideBar:]: unrecognized selector sent to instance”,后面跟着一堆随机的字母和数字猜测是一个内存位置。知道为什么吗?我使用了不需要连接@IBAction 的第一个版本,因为当我尝试将其添加到子视图时,连接它会给我带来错误。
    • 我将不得不查看该类以指出有问题的代码段。您必须使用其他信息编辑问题。
    • 没关系,我发现只是故事板按钮仍然链接到 @IBAction 方法。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-07-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多