gpt4 book ai didi

带有侧边菜单的 iOS 导航

转载 作者:行者123 更新时间:2023-12-01 18:16:12 30 4
gpt4 key购买 nike

我需要在 iOS 应用程序中创建一个导航,如下图所示。

enter image description here

它包含一个标签栏和一个侧边菜单。

问题是正确的导航菜单按钮,应该在所有选项卡中都可见。甚至每个选项卡的所有内部屏幕。

当用户从侧面菜单中选择一个选项时,它应该显示在屏幕上。

现在应该可以从每个选项项访问每个​​选项卡,并且每个选项卡都应该可以访问每个选项菜单。它就像数据库中的多对多关系。

我应该如何设计它?

到目前为止,我已经尝试过。

  • 在每个选项卡中,都有一个 containerViewController .其中包括我的FrontViewControllerSideMenuViewController .
  • 当从侧面菜单中选择一个选项时,会向 containerViewController 传递一条消息。删除旧的 FrontViewController从 View 中添加新的 OptionViewController .
  • containerViewController中增加了菜单按钮和导航栏, 这样 if 应该每次都可见,在任何屏幕上。

  • 问题

    现在使用这种方法面临一些问题。
  • 由于在containerViewController 中添加了导航栏.我可以使用 parent 访问它我的 FrontViewController 的属性(property).假设如果我需要使用 PushViewController在我的FrontViewController , 我必须使用 parent属性(property)。像这样
    [self.parent.navigationController pushViewController:newVC animated:YES ];[self.parent.navigationController popViewControllerAnimated:YES];
  • 我必须在每个选项卡中使用这种方法。表示代码重复 5 次。

  • 任何人都可以提出一个简单的解决方案。任何帮助表示赞赏。

    最佳答案

    您可以尝试使用InteractiveSideMenu为你的目的。它支持交互式打开/关闭菜单和以下自定义:

  • 动画时长
  • 可见内容宽度
  • 内容规模
  • 使用带有参数自定义的 Spring 动画
  • 动画曲线等动画选项

  • 你应该使用 3 个基本的 ViewController 来创建子类来实现你的侧边菜单。
  • MenuContainerViewController是菜单和内容 View 的主机
  • MenuViewController是菜单 View 的容器
  • MenuItemContentControlller是对应菜单项
  • 的内容的容器

    这是设置主机 Controller 的示例。
    import InteractiveSideMenu

    class HostViewController: MenuContainerViewController {

    override func viewDidLoad() {
    super.viewDidLoad()

    self.menuViewController = self.storyboard!.instantiateViewController(withIdentifier: "NavigationMenu") as! MenuViewController

    self.contentViewControllers = contentControllers()

    self.selectContentViewController(contentViewControllers.first!)
    }

    private func contentControllers() -> [MenuItemContentViewController] {
    //here is instantiation of content view controllers
    }
    }

    关于带有侧边菜单的 iOS 导航,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21779153/

    30 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com