首页 > 解决方案 > 如何在其他控制器中使用 UIlabel.text?

问题描述

我有两个控制器,即 Map 和 BottomSheet。单击地图中的标记后,我想更改 UIlabel 文本。

BottomsheetController.swift

var Data : [DataClass] = []

class BottomSheetViewController : UIViewController{


@IBOutlet weak var Id: UILabel!

func getid(id : String?){
    let kick = id
    self.Id.text = kick
    }
}

MapViewController.swift

class MapViewController: UIViewController ,GMUClusterManagerDelegate{


@IBOutlet weak var mapView: GMSMapView!



override func viewDidAppear(_ animated: Bool) {
    super.viewDidAppear(animated)
    addBottomSheetView()
}


// MARK: Click marker
func mapView(_ mapView: GMSMapView, didTap marker: GMSMarker) -> Bool {
    if let poiitem = marker.userData as? POIItem {
            let bvc = BottomSheetViewController()
            bvc.getimei(imei: Data[0].id)

         }
         return true
    }
}

它一直说致命错误:在隐式展开可选值时意外发现 nil

标签: swift

解决方案


只需使用 segue 在两个控制器之间传递数据

performSegue(idnitfierName,sender)

然后,

履行(){

让 vc = segue.destination 为!MapViewController vc.variableName = 你必须通过的变量

}


推荐阅读