【问题标题】:child uiviewcontroller not loading on navigation bar子 uiviewcontroller 未在导航栏上加载
【发布时间】:2018-12-28 17:39:26
【问题描述】:

我正在处理一个侧面菜单并将其转移到导航栏上方。但现在我似乎无法“加载”视图控制器,所有点击事件都转到它下面的页面。

在我看来,点击事件被卡在导航栏区域。

但是视图控制器不运行 viewDidLoad, 我知道这一点是因为在我完成此更改后没有创建菜单项。

上一个菜单就像一个在当前页面上滑动的视图控制器。

这是我更改/一直在使用的唯一代码

let navController = self.navigationController!
let mainV = navController.navigationBar
//let mainV = self.view --> OLD MENU CODE


mainV.addSubview(self.menuVC!.view)

//self.addChildViewController(self.menuVC!) --> OLD MENU CODE

navController.addChildViewController(self.menuVC!)
//navController.viewDidLoad()
//self.menuVC!.didMove(toParentViewController: navController)

//navController.isModalInPopover = true

//BaseViewController.menuVC?.didMove(toParentViewController: self)
self.menuVC!.view.layoutIfNeeded()

我确实留下了我以前的工作代码并尝试在 cmets 中修复新代码

有什么想法吗?谢谢

-- 更新-- sudeently 似乎正在加载项目

【问题讨论】:

  • 我认为您对addChildVC 有误解,还应该查看 navControllers 及其实际用途。看看这里:stackoverflow.com/a/18453401/1501847
  • 由于某种原因它再次开始按预期工作

标签: swift uiviewcontroller uinavigationcontroller uinavigationbar


【解决方案1】:

所以我放弃了将视图和控制器添加到导航栏的想法。 相反,我决定创建一个模态视图

            self.menuVC?.modalPresentationStyle = UIModalPresentationStyle.overCurrentContext // allows transparency for the previous view
            self.present(self.menuVC!, animated: false, completion: nil)
            self.menuVC!.view.layoutIfNeeded()

【讨论】:

  • 嗯,当我 addChildView 时它不会覆盖当前的导航栏,即使我设置了 frame = UIScreen.main.bounds,你能帮忙吗?
猜你喜欢
  • 1970-01-01
  • 2021-09-14
  • 1970-01-01
  • 1970-01-01
  • 2012-08-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多