SWRevealViewController滑动手势无法使用。

3

你好,我已经在Swift中集成了SWRevealViewController。

下面是我在应用程序委托中编写的代码:

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())

如演示所示。我看到很多帖子建议在视图上添加手势。
我不确定我做错了什么。请帮我找到解决方案。
谢谢。
2个回答

0
我能想到的一件事是,当涉及到你的代码时,你没有在任何地方存储前面和后面视图控制器的强引用。它基本上会在方法体执行完毕后被释放。在你的情况下,像这样做可以解决问题:
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 :)
    }
}

虽然它可以渲染,但会带来一系列问题,而手势识别器在我的经验中是最难跟踪的。

您可以阅读更多关于 ARC 如何工作的细节 在 Apple 文档中,我认为没有人能比那里写的更好地解释它 :)


0
将以下代码添加到您的viewDidLoad方法中,
view.addGestureRecognizer(revealViewController().panGestureRecognizer())

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接