Swift 如何修复';可选零和x27;在RevealViewController()手势识别器上?
我正在尝试将点击和平移手势识别器添加到我的Swift 如何修复';可选零和x27;在RevealViewController()手势识别器上?,swift,xcode,uigesturerecognizer,swrevealviewcontroller,Swift,Xcode,Uigesturerecognizer,Swrevealviewcontroller,我正在尝试将点击和平移手势识别器添加到我的RevealViewController()中,并且我得到了一个可选类型的值“UIGestureRecognizer?”必须展开。我该怎么打开这个 //我的应用程序 //主故事板 //HomeVC override func viewDidLoad() { super.viewDidLoad() menuBtn.addTarget(self.revealViewController(), action: #selector(SWRe
RevealViewController()
中,并且我得到了一个可选类型的值“UIGestureRecognizer?”必须展开。我该怎么打开这个
//我的应用程序
//主故事板
//HomeVC
override func viewDidLoad() {
super.viewDidLoad()
menuBtn.addTarget(self.revealViewController(), action: #selector(SWRevealViewController.revealToggle(_:)), for: .touchUpInside)
if self.revealViewController() != nil{
self.view.addGestureRecognizer(self.revealViewController()!.tapGestureRecognizer())
self.view.addGestureRecognizer(self.revealViewController()!.panGestureRecognizer())
}
}
这个问题很模糊,而且你没有提供太多的上下文,所以如果答案不完全符合你的需要,请原谅,但为什么不做一个简单的if let
语句来优雅地打开它呢
if let gestureTap = self.revealViewController()?.tapGestureRecognizer(){
if let gesturePan = self.revealViewController()?.panGestureRecognizer(){
self.view.addGestureRecognizer(gestureTap)
self.view.addGestureRecognizer(gesturePan)
}
}
我通过添加以下内容获得了轻拍和平移手势识别器:
menuBtn.addTarget(self.revealViewController(), action: #selector(SWRevealViewController.revealToggle(_:)), for: .touchUpInside)
menuBtn.addTarget(self.revealViewController(), action: #selector(SWRevealViewController.panGestureRecognizer), for: .touchUpInside)
menuBtn.addTarget(self.revealViewController(), action: #selector(SWRevealViewController.tapGestureRecognizer), for: .touchUpInside)
revealViewController()
是如何声明的?我在我的Main.storyboard
中使用sw\u rear
和sw\u front
,然后我使用menuBtn
打开revealViewController()
这并没有回答我的问题。请编辑您的问题并添加函数revalviewcontroller()
。我没有为revalviewcontroller()
使用任何函数。menuBtn
控制它。按钮目标并不像您想象的那样引用视图控制器,它正在创建视图控制器的新实例。我添加了图像和您提供的代码,但点击和平移不起作用。然而,它不再显示“可选零”。