PresentViewController 一个带有 UINavigationController 的非全屏 UIViewController

Posted

技术标签:

【中文标题】PresentViewController 一个带有 UINavigationController 的非全屏 UIViewController【英文标题】:PresentViewController a non full screen UIViewController with UINavigationController in it 【发布时间】:2013-07-22 17:12:43 【问题描述】:

我想弄清楚是否有办法呈现一个不是全屏的 UIViewController。它应该是自定义大小,而不是使用 modalPresentationStyle 可以实现的。

我想用 UINavigationController 创建一个类似于原生 Twitter/Facebook 共享表大小的视图,以便我可以推送/弹出更多 UIViewController。它应该适用于 iPhone 和 iPad。

【问题讨论】:

你要在那个视图控制器中显示什么。 这些天,只使用容器,***.com/a/23403979/294884 【参考方案1】:

您可以使用 View Controller Containment 来执行此操作。有关更多信息,请参阅http://developer.apple.com/library/ios/#documentation/UIKit/Reference/UIViewController_Class/Reference/Reference.html 的“实现容器视图控制器”。基本上你只需要在将孩子的视图添加到你的视图之前调用 addChildViewController: ,然后在删除它之前调用 removeFromParentViewController: 。

【讨论】:

【参考方案2】:

我所做的大致是:

override func viewDidLoad() 
    super.viewDidLoad()

    self.edgesForExtendedLayout = UIRectEdge.None // Otherwise the sub view might go under the parent's navigation bar

    let vc = MyPresentedViewController()
    self.addChildViewController(vc)
    self.view.addSubView(vc.view)

它似乎工作正常。

【讨论】:

以上是关于PresentViewController 一个带有 UINavigationController 的非全屏 UIViewController的主要内容,如果未能解决你的问题,请参考以下文章

如何更改presentViewController过渡动画

PresentViewController 在 iOS 中隐藏导航栏

PresentViewController切换界面

presentViewController 不存在

ios - 当 presentViewController 关闭时不起作用

SKScene 在 presentViewController 之后重复