当用户点击视图控制器时如何使 SWRevealViewController 菜单消失

How to make SWRevealViewController menu disappear when users tap on the view-controller

我有带有嵌入式 SWRevealViewController 的视图控制器我在下面添加了代码以在使用菜单时禁用任何交互。

viewcontroller嵌入了tableview。

当用户点击视图控制器作为 slack 应用程序时,如何使菜单消失 "When the menu is on use and you tap on the chat the menu disappears"

  class Feed: UIViewController,SWRevealViewControllerDelegate {
@IBOutlet weak var menuButton:UIBarButtonItem!

@IBOutlet weak var menuButton:UIBarButtonItem!

override func viewDidLoad() {
    super.viewDidLoad()

    if self.revealViewController() != nil {
        menuButton.target = self.revealViewController()
        menuButton.action = "revealToggle:"
        self.revealViewController().delegate = self
        self.view.addGestureRecognizer(self.revealViewController().panGestureRecognizer())

    }

    fetchMessages()
}





func revealController(revealController: SWRevealViewController!, willMoveToPosition position: FrontViewPosition)
{
    if position == FrontViewPosition.Left     // if it not statisfy try this --> if revealController.frontViewPosition == FrontViewPosition.Left
    {
        self.view.userInteractionEnabled = true
    }
    else
    {
        self.view.userInteractionEnabled = false
    }

    func revealController(revealController: SWRevealViewController!, didMoveToPosition position: FrontViewPosition)
    {
        if position == FrontViewPosition.Left     // if it not statisfy try this --> if revealController.frontViewPosition == FrontViewPosition.Left
        {
            self.view.userInteractionEnabled = true
        }
        else
        {
            self.view.userInteractionEnabled = false
        }

    }
}

//在你的视图控制器中设置代理 class

class FeedVC: UIViewController,SWRevealViewControllerDelegate,UIGestureRecognizerDelegate 


 override func viewDidLoad() {
    super.viewDidLoad()

  self.revealViewController().delegate = self
    var swl=self.revealViewController()


    if swl != nil
    {
        swl.panGestureRecognizer()
        swl.tapGestureRecognizer()
    }
}

// 创建左栏按钮动作

@IBAction func but_back(sender: AnyObject) {

    self.navigationController?.interactivePopGestureRecognizer.delegate=self
    self.navigationItem.leftBarButtonItem?.target=self.revealViewController()
    self.navigationItem.leftBarButtonItem?.action=Selector("revealToggle:")
    self.revealViewController().revealToggle(sender)

    self.view.addGestureRecognizer(self.revealViewController().panGestureRecognizer())
}

//设置SWLReval的委托方法

func revealController(revealController: SWRevealViewController!, willMoveToPosition position: FrontViewPosition)
{
    if position == FrontViewPosition.Left     // if it not statisfy try this --> if revealController.frontViewPosition == FrontViewPosition.Left
    {
        self.view.userInteractionEnabled = true
        revealController.panGestureRecognizer().enabled=true
    }
    else
    {
        self.view.userInteractionEnabled = false
        revealController.panGestureRecognizer().enabled=false
    }



}

此 link 中提供了更新代码,请在 here

下载项目