gpt4 book ai didi

ios - 快速实现导航菜单的标准方法是什么?

转载 作者:行者123 更新时间:2023-11-29 05:28:56 26 4
gpt4 key购买 nike

我正在尝试通过在我的应用程序中使用菜单来创建导航,但我不确定应该如何完成。我目前有一个这样的系统:

ContainerViewController
|
+---CenterNavigationController
|
+---ViewControllerA [i.e. the root view controller which will be changed]
|
+---MenuViewController [pushed to navigation stack on btn press]

当按下菜单中的一项来加载另一个 View Controller 时,MenuViewController 会调用 ContainerViewController 中的委托(delegate)方法,该方法会用具有不同根的新 Controller 替换 NavigationController

let newVC = ViewControllerB()
CenterNavigationController = UINavigationController(rootViewController: newVC)

然而,无论是在代码还是应用程序的美观方面,这看起来都很糟糕。

我不知道如何正确执行此操作。我希望菜单覆盖到当前 View 上,并且能够单击菜单中的“后退”以返回到加载 menuVC 之前屏幕上显示的内容。我怎样才能做到这一点?

最佳答案

你做的都正确。如果导航动画不好,那就改进它。您可以从左侧显示动画菜单并重新加载 CenterNavigationController 而无需动画。至于透明度,只需将菜单 View Controller 的主视图颜色更改为半透明即可。包含所有菜单项的第一个 subview 应该是不透明的,并且具有较低的宽度并粘在左侧。就是这样。

我认为你不应该将菜单 View Controller 插入导航堆栈。只需将其直接加载到 UINavigationView Controller 中即可。

您可以在此处检查 loadViewController (第 251 行)方法 https://gitlab.com/seriyvolk83/SwiftEx/blob/master/Source/UIExtensions.swift

它将 View Controller 加载到给定范围内的另一个 View Controller 中。要稍后删除它(关闭菜单),您可以使用 remove() (参见第 321 行)

关于ios - 快速实现导航菜单的标准方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57857502/

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