SWRevealController以编程方式

问题描述 投票:1回答:1

我试图通过在我的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())
        }

但我不确定为什么它的零.....

swift swrevealviewcontroller
1个回答
0
投票

首先,您需要创建条形按钮

 @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)

© www.soinside.com 2019 - 2024. All rights reserved.