每次调用viewWillAppear
self.view.addGestureRecognizer(self.revealViewController().panGestureRecognizer())
添加手势识别器。
如何查看我是否已添加识别器?
我知道我可以把它移到viewDidLoad
,但这不是我想要的。
答案 0 :(得分:2)
您可以检查手势实例是否存在,如下所示
self.view.gestureRecognizers?.contains(yourgestureInstance)
self.view.gestureRecognizers
提供已添加到视图中的所有gestureRecognizers
数组。
答案 1 :(得分:1)
viewWillAppear:
就会调用everyTime。
viewDidLoad:
只会被调用一次。
如果你不想在这种情况下将代码移动到viewDidLoad:
,请在ViewController中添加一个布尔变量。
isRevealPanGastureAdded
之外的 delcare viewDidLoad:
变量
var isRevealPanGastureAdded : Bool = false
在viewWillAppear:
下面写下代码。
override func viewWillAppear(animated: Bool) {
super.viewWillAppear(animated);
//this will be called only once
if self.isRevealPanGastureAdded == false {
self.view.addGestureRecognizer(self.revealViewController().panGestureRecognizer())
self.isRevealPanGastureAdded = true;
}
}
答案 2 :(得分:0)
1)您可以添加布尔属性来检测在
之前调用viewWillAppear
2)您可以在属性中存储添加的手势识别器,如果不是nil
,请不要再次添加
3)您可以在viewWillDisappear
/ viewDidDisappear