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

我有视图控制器与embeddedSWRevealViewController我已经添加下面的代码来禁用任何交互,而使用菜单。

视图控制器embeddedtableview。

当用户点击视图控制器时,如何使菜单消失作为松弛的应用程序“当菜单正在使用,你点击聊天菜单消失”

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 FeedVC: UIViewController,SWRevealViewControllerDelegate,UIGestureRecognizerDelegate override func viewDidLoad() { super.viewDidLoad() self.revealViewController().delegate = self var swl=self.revealViewController() if swl != nil { swl.panGestureRecognizer() swl.tapGestureRecognizer() } } 

//创build左栏button动作

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

更新的代码在这个链接中可用,在这里下载项目