所以我有一个应用程序,你应该从地图中选择一个位置,但我这样做的方式是通过一个视图控制器的弹出窗口,它有一个MapKit,一个搜索栏和一个用于选择用户的按钮位置,问题在于我完成了我通常称之为
的视图self.view.removeFromSuperview()
但正在删除的东西是View控制器本身,但是il留下了导航栏,它不会让我什么都不做(实际上当我转到另一个选项卡并返回到同一个VC返回时) )。
我实例化VC的方式是这样的:
func location ()
{
let mainStoryboard: UIStoryboard = UIStoryboard(name: "Main", bundle: nil)
let vc = mainStoryboard.instantiateViewController(withIdentifier: "mapV") as! UBICACIONViewController
let nav1 = UINavigationController()
nav1.viewControllers = [vc]
self.addChildViewController(nav1)
self.view.addSubview(nav1.view)
vc.delegate = self //this for the info that i'm getting afte(works fine)
nav1.didMove(toParentViewController: self)
}
所以,直到这里工作,但当用户选择“使用我的位置”的te按钮并尝试返回时出现问题。
在我的VC视图控制器中,这就是完成后会发生的事情:
func Remove()
{
if let del = delegate {
del.dataChanged(str: Event.sharedInstance.Location!)
}
self.view.removeFromSuperview() //Problem Here :/
}
答案 0 :(得分:0)
实际上你添加了一个子视图控制器nav1。 nav1有一个子视图nav1.view。 删除时,您将从其超级视图中删除此视图,而不是添加子视图控制器。
任何方式,从你的屏幕短...我明白弹出视图是全屏幕,然后为什么不以模态方式呈现此VC,或者将其推送到导航堆栈。