gpt4 book ai didi

ios - 从同时加载的TableViewController访问ViewController socket

转载 作者:行者123 更新时间:2023-11-30 12:42:44 25 4
gpt4 key购买 nike

我正在阅读该主题:IBOutlet of another view controller is nil

我有一个与此非常相似的问题。

RequestViewController

class DenunciasResueltasViewController: UIViewController {

@IBOutlet var mapView: GMSMapView!
var solicitudes = [SolicitudesModel]()
var tempMap: GMSMapView!

override func viewDidLoad() {
super.viewDidLoad()

let camera = GMSCameraPosition.camera(withLatitude: 3.4824182, longitude: -8.1776567, zoom: 15)
self.mapView.camera = camera
}

func recenterMap(latitude:Float!, longitude:Float!) -> Void {

let coordinates = CLLocationCoordinate2DMake(CLLocationDegrees(latitude), CLLocationDegrees(longitude))
mapView = tempMap
self.mapView.animate(toLocation: coordinates)
}

RequestTableViewController

class RequestTableViewController: UITableViewController {
override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {

//Some code to fill the table


let viewController = self.storyboard?.instantiateViewController(withIdentifier: "RequestVC") as! RequestViewController
viewController.recenterMap(latitude: solicitudes[indexPath.row].getLatitude(), longitude: solicitudes[indexPath.row].getLongitude() )

return cell
}
}

两个组件在运行时同时初始化,我的意思是,两者都是同一个 View 的一部分。

当用户点击“行”时,我想更新mapView

出于这个原因,我使用“RecenterMap”方法

但是,变量“self.mapView”始终为“nil”。我如何更新这个值?

最佳答案

您应该使用委托(delegate)方法didSelectRowAtIndexPath来执行重新定位,因为当用户点击单元格时会调用该方法。当第二个 View Controller 开始填充其单元格时,第一个 View Controller 的 Outlet 可能尚未设置。

关于ios - 从同时加载的TableViewController访问ViewController socket ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42044661/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com