【问题标题】:SWRevealViewController swipe gestures are not workingSWRevealViewController 滑动手势不起作用
【发布时间】:2015-10-04 07:58:30
【问题描述】:

您好,我已经在 swift 中集成了 swrevealview 控制器。

我在应用程序委托中编写了以下代码。

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

如演示所示。我看到很多帖子建议在视图上添加手势。

我不确定我做错了什么。请帮我解决。

谢谢

【问题讨论】:

    标签: ios swift slider swrevealviewcontroller


    【解决方案1】:

    我能想到的一件事是,当涉及到您的代码时,您不会在任何地方存储对前后视图控制器的强引用。它基本上会在执行离开方法体后立即被释放。在您的情况下,这样的事情可以解决问题:

    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 工作原理的详细信息 in the Apple Documentation,我认为没有人能比那里写的更好地解释它 :)

    【讨论】:

      【解决方案2】:

      将以下内容添加到您的 viewDidLoad 方法中,

      view.addGestureRecognizer(revealViewController().panGestureRecognizer())
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2014-04-03
        • 1970-01-01
        • 1970-01-01
        • 2017-04-07
        • 1970-01-01
        • 1970-01-01
        • 2015-12-18
        • 1970-01-01
        相关资源
        最近更新 更多