Swift从按钮、弹出框和单元格中以编程方式在地图顶部打开新的视图控制器

Swift从按钮、弹出框和单元格中以编程方式在地图顶部打开新的视图控制器,swift,uiviewcontroller,mkmapview,popover,presentviewcontroller,Swift,Uiviewcontroller,Mkmapview,Popover,Presentviewcontroller,我有点奇怪的问题。请注意,所有操作都是以编程方式完成的,因此请不要提供故事板建议。以下是设置: 我有一个主详细视图布局,其中详细视图是一个地图。主视图的表格中填充了表示地图上注释点的单元格。当您点击单元格时,它会聚焦于地图上的注释,并使用弹出框打开自定义注释视图。同样,当您点击注释本身时,会打开相同的弹出框。到目前为止,一切顺利 现在,在popover内部和每个单元格内都有一个按钮,按下该按钮时,将打开一个新视图,该视图将填充整个屏幕。该视图将包含特定于其相应注释的信息 以下是我试图做到这一点的

我有点奇怪的问题。请注意,所有操作都是以编程方式完成的,因此请不要提供故事板建议。以下是设置:

我有一个主详细视图布局,其中详细视图是一个地图。主视图的表格中填充了表示地图上注释点的单元格。当您点击单元格时,它会聚焦于地图上的注释,并使用弹出框打开自定义注释视图。同样,当您点击注释本身时,会打开相同的弹出框。到目前为止,一切顺利

现在,在popover内部和每个单元格内都有一个按钮,按下该按钮时,将打开一个新视图,该视图将填充整个屏幕。该视图将包含特定于其相应注释的信息

以下是我试图做到这一点的方式:

具有映射的类(MyDetailViewController)

单元格按钮和弹出按钮的功能调用

func btnPressed(sender: AnyObject){
    var dvc = MyDetailViewController()
    dvc.openNewViewController()
}
当任何一个按钮被点击时,我都会得到相同的错误:

警告:尝试在其视图不在窗口层次结构中的
DetailViewController
上显示
NewViewController

那么,DetailViewController不在窗口层次结构中是什么意思。。?一定是因为我看到了,不是吗


你知道如何解决这个问题吗?提前谢谢

您的函数openNewViewController()什么也没做
参见代码

self.presentViewController(openNewViewController()) , animated : true , completion: nil)
指的是它自己

相反,请尝试以下方法:

public func openNewViewController(){
    var newController = UIViewController() // or any other view you wish to instantiate
    self.presentViewController(newController, animated: true, completion: nil)
}

您的函数openNewViewController()没有执行任何操作!只要看看代码。。。。。presentViewController(openNewViewController()),动画:true,完成:nil)指向自身!!!!嗨,斯利拉姆,谢谢你的回答,但那是o型的。很好的理解,但我打算编写
self.presentViewController(NewViewController()…)
。我编辑了我的问题,还是一样的错误;类型o在问题中,而不是在实际代码中=)
public func openNewViewController(){
    var newController = UIViewController() // or any other view you wish to instantiate
    self.presentViewController(newController, animated: true, completion: nil)
}