我正在使用“插件”SWRevealViewController 来帮助在我的应用程序中生成侧边栏。现在在 Objective-C 中,您可以使用以下代码控制侧栏:
[self.sidebarButton setTarget: self.revealViewController];
[self.sidebarButton setAction: @selector( revealToggle: )];
[self.view addGestureRecognizer:self.revealViewController.panGestureRecognizer];
其中sidebarButton 已经连接了UIBarButtonItem 和IBOutlet。现在我正试图将它应用到我的 Swift 代码中,但我取得了好坏参半。
我设置了一个@IBOutlet var 按钮。现在我已经尝试了 UIBarButtonItem 和 UIButton。当我尝试 UIBarButtonItem 时,我使用了以下行:
button = UIBarButtonItem(barButtonSystemItem: .Add, target: self.revealViewController(), action: "revealToggle:")
但是,这没有任何作用,并且按钮不起作用。但是,如果我将按钮设置为 UIButton 并将其与以下内容挂钩:
button.addTarget(self.revealViewController(), action:"revealToggle:", forControlEvents:UIControlEvents.TouchUpInside)
这可以将栏滑出和滑入,但不能通过手势。问题是我无法将 UIButton 添加到工具栏(无论如何在 StoryBoard 中)。
那么有什么方法可以正确实施吗?另外,是否也可以添加手势识别器?
谢谢
编辑
好的,我已经设法让手势切换工作,虽然我认为我的方法有点冗长:
var swipeRight = UISwipeGestureRecognizer(target: self.revealViewController(), action: "revealToggle:")
swipeRight.direction = UISwipeGestureRecognizerDirection.Right
self.view.addGestureRecognizer(swipeRight)
var swipeLeft = UISwipeGestureRecognizer(target: self.revealViewController(), action: "revealToggle:")
swipeLeft.direction = UISwipeGestureRecognizerDirection.Left
self.view.addGestureRecognizer(swipeLeft)
所以请指正。