【发布时间】:2018-10-02 15:32:11
【问题描述】:
我有一个MapViewController,它基本上是一个MKMapView,并提供了一个带有自定义注释的地图。
现在我正在尝试从底部展示另一个 ViewController,其中包含用户将能够在其旅程中使用的其他过滤器。
但是我遇到了一个问题,当我将新的FilterMenuViewController 呈现为MapViewController 的孩子时,MapViewController 消失了。
这就是它的样子:
Button to present new controller tapped
New controller presented but the MapViewController disappearing
负责交互的代码如下:
MapViewController变量声明:
var filterMenuVC = FilterMenuViewController()
var isFilterMenuOpened = false
MapViewController viewDidLoad():
filterMenuVC = storyboard?.instantiateViewController(withIdentifier: "FilterMenuViewController") as! FilterMenuViewController
MapViewController showFilterMenu按钮操作:
@IBAction func showFilterMenu(_ sender: UIButton) {
// Presents the filter menu
if isFilterMenuOpened == true {
isFilterMenuOpened = false
filterMenuVC.willMove(toParentViewController: nil)
filterMenuVC.view.removeFromSuperview()
filterMenuVC.removeFromParentViewController()
} else if isFilterMenuOpened == false {
isFilterMenuOpened = true
self.addChildViewController(filterMenuVC)
self.view.addSubview(filterMenuVC.view)
filterMenuVC.didMove(toParentViewController: self)
}
}
【问题讨论】:
-
您是否 100% 确定 filterMenuVC 的背景清晰?您对 filterMenuVC 应用了哪些框架/约束?
-
是的,我 100% 确定即使 alpha 为 0 并且 viewController 上没有任何内容,初始 MapViewController 也会被释放。
标签: ios swift view uikit subview