DLHamburguerMenu 1.0.6

DLHamburguerMenu 1.0.6

测试已测试
Lang语言 SwiftSwift
许可证 MIT
Released最后发布2016年1月
SPM支持 SPM

hamdy维护。



  • 作者:
  • Ahmed Hamdy

DLHamburguerMenu

DLHamburguerMenu 是一个完全用 Swift 编写的“汉堡”侧边栏菜单控件。它在一个视图的当前视觉内容上方显示菜单(即:在当前 UINavigationController 上方)。它使用 storyboards 集成非常容易。

iOS 7+ 版本兼容

结构

菜单通过设置主容器视图控制器,称为“根”视图,然后插入两个视图控制器(菜单视图控制器和内容视图控制器)来实现工作。第一个将包含侧边栏菜单,第二个将是应用程序的主要内容,可能是 UINavigationController 的子类。

为了方便,包含了一个名为 DLHamburguerNavigationController 的 UINavigationController 子类。因此,您只需在 storyboards 中设置三个视图控制器。

  • 一个是 RootViewController,它是 DLHamburguerViewController 的子类。
  • 一个是充当菜单的视图控制器。
  • 一个是充当主要内容的视图控制器,可能是在 DLHamburguerNavigationController 中嵌入的。
  • 还有由内容视图控制器通过 segue 访问的其他任何视图控制器。

使用和集成

将 DLHamburguerContainerViewController.swift、DLHamburguerNavigationController.swift 和 DLHamburguerViewController.swift 文件拖放到您的项目中。设置一个至少包含三个视图控制器的故事板,根视图控制器(DLHamburguerViewController 的子类)、充当内容视图控制器的视图控制器(嵌入在 DLHamburguerNavigationController 中)以及菜单视图控制器。

这三个视图控制器不需要由任何 segue 相连接。还可以将任意数量的 segues 添加到内容视图控制器中。

然后,在根视图控制器中,在 awakeFromNib() 中实例化内容和菜单视图控制器。

override func awakeFromNib() {
  self.contentViewController = self.storyboard?.instantiateViewControllerWithIdentifier("DLDemoNavigationViewController") as UIViewController
  self.menuViewController = self.storyboard?.instantiateViewControllerWithIdentifier("DLDemoMenuViewController") as UIViewController
}

从菜单中选择选项

要正确地从内容视图控制器中 segue,在菜单中,一旦您已经通过 push 或 show present 了另一个视图控制器,应更新内容视图控制器。在导航控制器的情况下,一旦进行 push,简单地将它分配为新的内容控制器即可。

func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {
  let nvc = self.mainNavigationController()
    if let hamburguerViewController = self.findHamburguerViewController() {
      hamburguerViewController.hideMenuViewControllerWithCompletion({ () -> Void in
        nvc.visibleViewController.performSegueWithIdentifier(self.segues[indexPath.row], sender: nil)
          hamburguerViewController.contentViewController = nvc
      })
    }
}

可以使用 findHamburguerViewController() 函数检索当前汉堡视图控制器,以便您可以使用它访问其内容和菜单视图控制器。

旋转和过渡

汉堡菜单与iOS 7旋转和iOS 8过渡兼容。

致谢和认可

由Ignacio Nieto Carvajal开发,灵感来自Roman Efimov的REFrostedViewController(《https://github.com/romaonthego/REFrostedViewController》)。

授权

MIT授权(MIT)

版权所有 © 2015 Ignacio Nieto Carvajal

任何人可以免费获得本软件及其关联文档的副本(以下简称“软件”),无需任何限制地处理该软件,包括但不限于使用、复制、修改、合并、发布、分发、许可和/或出售软件副本,并允许向软件提供者提供软件的人同样这样做,前提是符合以下条件

以上版权声明和本许可声明应包含在软件的任何副本或主要部分中。

该软件按“现状”提供,不提供任何形式的保证,明示或暗示,包括但不限于适销性、适用于特定目的和不侵权的保证。在任何情况下,作者或版权所有者不对任何索赔、损害或其他责任负责,无论是基于合同、侵权或其他任何原因,源于、由、或与软件的使用或任何其他方式有关。