将数据从一个视图控制器传递到同一视图上的另一个视图控制器

时间:2020-04-29 16:18:31

标签: ios swift google-maps-markers uistoryboard google-maps-sdk-ios

我正在构建我的第一个应用程序,并且同时显示了两个视图控制器。首先是我的谷歌地图,该视图的顶部是我found的面板(pod)。 Googlemaps视图控制器会调用单独的故事板上的面板

我希望能够将数据传递到面板视图,而不必使用segue。我已经尝试过segue方法,但是它完全取代了整个视图。有没有一种方法可以让我将数据传递到面板而不必单独切换到该视图?

extension MapViewController: GMSMapViewDelegate {
     func mapView(_ mapView: GMSMapView, didTap marker: GMSMarker) -> Bool {

        guard let placeMarker = marker as? PlaceMarker else {return false}


        guard let panview = self.storyboard?.instantiateViewController(withIdentifier: "atminfo") as? PanelMaterial
        else {
            return false
        }


        panview.Titlee = placeMarker.place.name
        atmaddress = panview.Titlee ?? "Me"
        print(atmaddress)

        return false



  }

}

上面是我的代码,这是GoogleMaps ViewController的代码,在这里我从引脚接收信息,然后尝试将其传递给在同一视图中处于活动状态的Panel。当我放置断点时,我可以接收数据,但是在面板仍在我的GoogleMaps视图中处于活动状态时传递数据不会显示。

感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

您还可以使用单例类将数据传递到其他控制器,也可以在appdelegate中创建对象,该对象也可以在任何类中使用。

像这样:

在appdelegate中声明变量

var channelID = ""

您可以使用

let kAppDelegate = UIApplication.shared.delegate as! AppDelegate
print(kAppDelegate.channelID)
相关问题