Ios 在swift中实现导航菜单的标准方法是什么?

Ios 在swift中实现导航菜单的标准方法是什么?,ios,swift,Ios,Swift,我正在尝试通过使用我的应用程序中的菜单来创建导航,但我不确定该如何实现。我目前有一个这样的系统: ContainerViewController | +---CenterNavigationController | +---ViewControllerA [i.e. the root view controller which will be changed] | +---MenuViewController [pushed to

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

ContainerViewController
|
+---CenterNavigationController
        |
        +---ViewControllerA [i.e. the root view controller which will be changed]
        |
        +---MenuViewController [pushed to navigation stack on btn press]
当按下菜单中的某个项以加载另一个视图控制器时,MenuViewController调用ContainerViewController中的委托方法,该方法将使用具有不同根目录的新方法替换NavigationController

let newVC = ViewControllerB()
CenterNavigationController = UINavigationController(rootViewController: newVC)
然而,无论是在代码上还是在应用程序的美学上,这看起来都很简陋


我不知道该怎么做。我希望将菜单覆盖到当前视图上,并能够单击菜单中的“后退”返回到加载menuVC之前屏幕上显示的内容。我该怎么做呢?

汉堡菜单在iOS上是反模式的,我建议使用UITabBarController。如果有人拿枪指着你的头,强迫你在你的应用程序里放一份汉堡包菜单,那么使用类似这样的方法:

你做的一切都是正确的。如果导航动画不好,那么改进它。您可以从左侧显示已设置动画的菜单,并在不设置动画的情况下重新加载CenterNavigationController。至于透明度,只需将菜单视图控制器的主视图的颜色更改为半透明即可。包含所有菜单项的第一个子视图应该是不透明的,并且具有较低的宽度并粘贴到左侧。就这样

我认为您不应该将菜单视图控制器推入导航堆栈。只需将其直接加载到UINavigationView控制器中

您可以在此处检查
loadViewController
(第251行)方法


它将视图控制器加载到给定范围内的另一个视图控制器中。要在以后删除它(关闭菜单),可以使用
remove()
(参见第321行)

有用的信息,但现在我想知道的是!尽管如此,我还是很感激——我会看一下代码