滑动手势无法正常工作侧栏菜单 - 斯威夫特

时间:2015-11-13 14:14:17

标签: ios swift swift2 uipangesturerecognizer swrevealviewcontroller

我正在关注此tutorial以创建侧栏菜单。我能够成功地实现它并且它完美地工作。但是当我添加多个表视图时,我注意到当我从View 1转到View 2(参见下面的故事板)然后回到View 1时,我无法使用滑动手势打开侧面菜单。点按功能确实有效,我可以点击菜单按钮,菜单滑出。

以下是处理滑动的代码:

override func viewDidLoad() {
    super.viewDidLoad()

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

当我在屏幕上从左向右滑动时,上面的代码会产生以下结果:

enter image description here

enter image description here

有没有人知道为什么会这样?我做了研究,却找不到任何东西 如果您需要更多信息或问题不够明确,请告诉我。

1 个答案:

答案 0 :(得分:2)

在搞乱代码之后,我能够解决问题。只是为了让你知道我不确定是否是一个完美的解决方案可以有一个更好的解决方法。如果是,请将其作为答案发布。

在上面的代码中,您可以看到我将滑动手势代码放在viewDidLoad函数中。

将滑动代码移动到viewWillAppear函数后,问题得以解决。请参阅以下代码:

override func viewWillAppear(animated: Bool) {

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

如果您知道解决此问题的更好方法,或者这不是解决此问题的正确方法,请告知我们。