2

我希望在菜单可见时点击前视图控制器时隐藏菜单。

我需要知道一个优雅的解决方案,它不会让我在所有视图控制器上添加手势识别器

4

1 回答 1

0

SWRevealViewController 为您提供了一个可以立即使用的点击手势控制器。所以你可以简单地将它添加到你的前端控制器: self.view.addGestureRecognizer(self.revealViewController().tapGestureRecognizer())

此外,如果你只想做一次,你可以创建一个添加这个手势识别器的控制器,然后从这个类继承。斯威夫特的例子:

class YourFrontViewControllerParentClass : UIViewController {

    override func viewDidLoad() {
        super.viewDidLoad()

        if let revealController = self.revealViewController() {
            // add the tap gesture recognizer to the front view (RootViewController) so that the sidebar menu closes when the user taps the front view when the side menu is closed.
            self.view.addGestureRecognizer(self.revealViewController().tapGestureRecognizer())
        }
    }
}

class YourFrontViewControllerChildClass1 : YourFrontViewControllerParentClass {
    override func viewDidLoad() {
        super.viewDidLoad()
        // specific stuff
    }
}

class YourFrontViewControllerChildClass2 : YourFrontViewControllerParentClass {
    override func viewDidLoad() {
        super.viewDidLoad()
        // specific stuff
    }
}

class YourFrontViewControllerChildClass3: YourFrontViewControllerParentClass {
    override func viewDidLoad() {
        super.viewDidLoad()
        // specific stuff
    }
}
于 2015-06-21T22:03:19.620 回答