iOS侧边栏菜单中的视差效果

时间:2016-09-23 10:17:57

标签: ios swift parallax sidebar swrevealviewcontroller

到目前为止,我正在使用GitHub上提供的SWRevealViewController库。这对我很有用,你可以在这里看到:

enter image description here

如何在此侧边栏菜单中实现视差效果?

此外,我还尝试了一些更具体针对我的目标的方法,比如 https://github.com/SSA111/SSASideMenu

我得到了这个结果:

enter image description here

但是,在选择任何类型的GRE测试后,将显示选定特定类别的前视图。

enter image description here

但现在点击GRE Main顶部的菜单栏按钮,侧边栏菜单不会出现,而是出现此错误:

  

致命错误:在解包可选值时意外发现nil

此错误以库文件SSASideMenu为目标,其中显示此前视图控制器的父ViewController为nil。因为SSASideMenu通过其父级检查发件人。

如果父匹配SSASideView,则会加载侧栏菜单。

这是我的代码:

extension UIViewController {

    var sideMenuViewController: SSASideMenu? {
        get {
            print(" >>>>>>>>>> ????????? ///////////// Here we are")
            return getSideViewController(self)
        }
    }

    private func getSideViewController(viewController: UIViewController) -> SSASideMenu? {

        var parent = viewController.parentViewController

        if parent == viewController.parentViewController {
            if parent is SSASideMenu
            {
                print("2nd Step")
                return parent as? SSASideMenu
            }
            else
            {
                parent = viewController.parentViewController
                print("1st Step")
                return getSideViewController(parent!)
            }
        }

        return nil
    }

    @IBAction func presentLeftMenuViewController() {
        sideMenuViewController?._presentLeftMenuViewController()
    }

    func showPresent()
    {
        print("Hello")
        sideMenuViewController?._presentLeftMenuViewController()
    }

    @IBAction func presentRightMenuViewController() {
        sideMenuViewController?._presentRightMenuViewController()
    }

}

最后,在ViewController中,它只是用作

button.addTarget(self, action: #selector(SSASideMenu.showPresent), forControlEvents: UIControlEvents.TouchUpInside)

0 个答案:

没有答案