Xcode Swift 如何将 UIViewController 放置在父 UIView Controller 之下

Xcode Swift how to place UIViewController beneath parent UIView Controller

我想制作与 Facebook 应用程序类似的效果。所以想制作导航滑出效果

但是,当我将带有菜单的 UIViewController 放在带有内容的父 UIViewController 下方,然后将父视图移到一边时,我的菜单没有显示。我能看到的一切都是黑屏。但是菜单框在正确的位置。

有什么建议我应该怎么做?

内容视图将是单独的 UIViewControllers。

子视图控制器总是在父视图控制器的视图之上。 我认为旧的和新的视图控制器应该是兄弟姐妹,并使用父视图控制器来添加它们。 事实上,原生UINavigationController的子控制器是兄弟关系,而不是父子关系。

我建议您不要自己做这件事,而是使用已经过许多贡献者严格测试的众多库之一。其中一个很好的例子是 MMDrawerController but there are many others. Take a look at cococontrols 更多的例子。

我的情况和你一样,最后我使用了一个自定义的 class,它的灵感来自 FaceBook 和 Wunderlist 应用程序,并且非常容易添加到项目中: https://github.com/John-Lluch/SWRevealViewController

我之前使用 iOS7 中引入的自定义转换实现了与此类似的机制。例如:可以模态显示菜单,但使用自定义转换让它从左侧出现并且只占据屏幕的一部分。

使用自定义 interactive 转换还允许您使用平移手势识别器将主视图控制器拖回菜单顶部 - 就像在 Facebook 应用程序中一样。

这里有一个很好的自定义过渡教程:http://www.thinkandbuild.it/ios7-custom-transitions/