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 在 iOS 中隐藏导航栏