我试图通过在我的ViewController中调用SWRevealController Delegate
以编程方式使用SWRevealController但是当我将以下内容添加到viewDidLoad()
时,barButtonItem不起作用,当应用程序命中addGestureRecognizer(self.revealViewController().panGestureRecognizer())
时应用程序崩溃。以下是viewDidLoad
中的代码:
navigationItem.leftBarButtonItem = UIBarButtonItem(image: #imageLiteral(resourceName: "menu2-black-32").withRenderingMode(.alwaysOriginal), style: .plain, target: self.revealViewController(), action: #selector(SWRevealViewController.revealToggle(_:)))
self.view.addGestureRecognizer(self.revealViewController().panGestureRecognizer())
我不确定是什么导致了这个问题,因为这个代码适用于我的一个viewcontrollers,而不适用于其他任何一个。
提前致谢!
编辑:
看起来我的self.revealViewController()是零,当我编辑代码看起来像这样:
if self.revealViewController() != nil {
navigationItem.leftBarButtonItem = UIBarButtonItem(image:
#imageLiteral(resourceName: "menu2-black-
32").withRenderingMode(.alwaysOriginal), style: .plain, target:
self.revealViewController(), action:
#selector(SWRevealViewController.revealToggle(_:))) self.view.addGestureRecognizer(self.revealViewController().panGestureRecognizer())
}
但我不确定为什么它的零.....
首先,您需要创建条形按钮
@IBOutlet weak var menuButton: UIBarButtonItem!
在viewDidLoad中,您可以添加此项
if self.revealViewController() != nil
{
menuButton.target = self.revealViewController()
menuButton.action = #selector(SWRevealViewController.revealToggle(_:))
self.view.addGestureRecognizer(self.revealViewController().tapGestureRecognizer())
self.view.addGestureRecognizer(self.revealViewController().panGestureRecognizer())
}
这工作正常你也可以自定义menuButton(UIBarButtonItem)