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

时间:2015-09-11 22:30:57

标签: ios iphone swift uiviewcontroller swrevealviewcontroller

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

viewcontroller嵌入了tableview。

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

  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
        }

    }
}

1 个答案:

答案 0 :(得分:2)

//在视图控制器类中设置委托

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
    }



}

此链接中提供了更新的代码,请在here

下载项目