【发布时间】:2016-12-10 20:21:29
【问题描述】:
我正在创建一个 iMessage 扩展程序,扩展的演示风格我想使用UINavigationController。我正在尝试使用以下函数将导航控制器添加为MSMessagesAppViewController 的子视图:
private func present(viewController: UIViewController) {
viewController.view.frame = view.frame
addChildViewController(viewController)
viewController.didMove(toParentViewController: self)
view.addSubview(viewController.view)
}
我期待导航控制器以传统方式显示,其导航栏从 iMessage 本身的顶部栏下方开始。请参阅下图了解我的预期结果:
但是,view.frame 似乎实际上延伸到 iMessage 顶部栏下方。因此,我的导航控制器的导航栏隐藏在 iMessage 的顶部栏下方。然而,滚动视图本身的内容视图被正确定位,无需进一步定制。实际效果请看下图:
显然,我可以将导航控制器的框架设置为在顶栏下方开始。但是,我正在寻找不太依赖硬编码位置的解决方案。如果这样做,滚动视图也不会在 iMessage 顶部栏下方继续以获得半透明效果。
理想情况下,导航栏将显示在 iMessage 顶部栏的正下方,就像默认情况下滚动视图一样。
有人知道解决办法吗?
【问题讨论】:
-
看来有更好的解决方案stackoverflow.com/questions/38426146/….
标签: ios swift uinavigationbar childviewcontroller imessage-extension