【问题标题】:How to make SWRevealViewController menu disappear when users tap on the view-controller当用户点击视图控制器时如何使 SWRevealViewController 菜单消失
【发布时间】:2015-12-08 13:55:07
【问题描述】:

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

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
        }

    }
}

【问题讨论】:

  • 你遇到了什么问题
  • 当 sw_rear 菜单打开时,我无法返回视图控制器“sw_front”,即使点击它只会在按下菜单按钮或我从菜单中选择时返回
  • 所以我希望用户点击视图控制器返回
  • 计算窗口位置 >0 ,在委托方法中添加平移手势
  • _frontViewPosition = FrontViewPositionLeft; _rearViewPosition = FrontViewPositionLeft; _rightViewPosition = FrontViewPositionLeft; _rearViewRevealWidth = 260.0f; _rearViewRevealOverdraw = 60.0f; _rearViewRevealDisplacement = 40.0f;

标签: ios iphone swift uiviewcontroller swrevealviewcontroller


【解决方案1】:

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

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下载项目

【讨论】:

  • 你能把你的项目发到我的邮箱 karthik.saral@gmail.com
  • @marrioa -- 故事板上的 swlrevalviewcontoller 在哪里,人不见了
  • 它就在那里!它是最初的 VC。
  • 你认为是什么问题?
  • @marrioa - 问题解决了,等我上传项目
猜你喜欢
  • 2014-05-22
  • 2015-09-07
  • 2015-10-03
  • 2011-04-29
  • 1970-01-01
  • 1970-01-01
  • 2019-03-30
  • 1970-01-01
  • 2016-06-20
相关资源
最近更新 更多