![](/img/trans.png)
[英]SWRevealViewController and TableView - swipe to delete not working
[英]SWRevealViewController swipe gestures are not working
您好我已经在swift中集成了swrevealview控制器。
我在app delegate中写了下面的代码。
let frontView = ViewController(nibName: "ViewController", bundle: nil)
let rearView = LeftViewController(nibName : "LeftViewController", bundle :nil)
var frontNavigationController = UINavigationController(rootViewController: frontView)
var rearNavigationController = UINavigationController(rootViewController: rearView)
menuSlider = SWRevealViewController(rearViewController: rearNavigationController, frontViewController: frontNavigationController)
menuSlider?.delegate = self
let rightView = LeftViewController(nibName : "RightViewController", bundle :nil)
menuSlider?.rightViewController = rightView
self.window?.rootViewController = menuSlider
self.window?.backgroundColor = UIColor.whiteColor()
self.window?.makeKeyAndVisible()
在前面看来我写了
var revealController:SWRevealViewController = self.revealViewController()
self.view.addGestureRecognizer(revealViewController().panGestureRecognizer())
self.view.addGestureRecognizer(revealViewController().tapGestureRecognizer())
如演示中所示。 我看过很多帖子都建议在视图上添加手势。
我不确定我做错了什么。 请帮我解决。
谢谢
我能想到的一件事是,在您的代码中,您不会在任何地方存储对前后视图控制器的强引用。 在执行离开方法体之后,它将基本上被释放。 在你的情况下,这样的事情可以解决问题:
Class myClass {
// Declaration
var frontNC : UINavigationController!
var rearNC : UINavigationController!
...
func myFunction() {
// Usage
self.frontNC = UINavigationController(rootViewController: frontView)
self.readNC = UINavigationController(rootViewController: rearView)
// Note* there is no need to store ViewControllers because those
// are retained by UINavigationController by default. The only
// exception is if you want to do something with them later obviously :)
}
}
虽然它会渲染,但它会产生一整套问题,并且手势识别器在我的经验中是最难追踪的。
您可以在Apple文档中阅读有关ARC如何工作的更多详细信息,我认为没有人能比那里写的更好地解释它:)
在viewDidLoad
方法中添加以下内容,
view.addGestureRecognizer(revealViewController().panGestureRecognizer())
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.