我在拆分视图中有几个视图控制器。有了这个,clientViewController我有两个文本字段 - “latitude”& “经度”
我移动到运行地图视图的视图控制器等。我发布当前位置的纬度和经度。在这个我有一个协议,我使用了以下代码似乎工作正常:
protocol MappingViewControllerDelegate {
func transferData(latitudeTfr: String!, longitudeTfr: String!)
}
class MappingViewController: UIViewController, CLLocationManagerDelegate, `MKMapViewDelegate, UITextFieldDelegate {`
var delegate: MappingViewControllerDelegate?
var latitudeTfr: String!
var longitudeTfr: String!
override func viewWillDisappear(animated: Bool) {
super.viewWillDisappear(animated)
latitudeTfr = latitudeLabel.text!
longitudeTfr = longitudeLabel.text!
self.delegate?.transferData(latitudeTfr!, longitudeTfr: longitudeTfr!)
print("Longitude is: \(longitudeTfr)")
print("Latitude is: \(latitudeTfr)")
}
回到clientViewController我有以下内容但它似乎没有获取/传输数据:
class ClientViewController: UIViewController, UITextFieldDelegate, MappingViewControllerDelegate {
func transferData(latitudeTfr: String!, longitudeTfr: String!) {
self.latitudeText.text = "\(latitudeTfr!)"
self.longitudeText.text = "\(longitudeTfr!)"
print("\(latitudeTfr!)")
}
clientViewController中的某个地方我错过了什么,无法弄清楚我做错了什么。任何帮助将不胜感激。
亲切的问候
韦恩
答案 0 :(得分:0)
您需要将协议委托分配给您符合要求的viewcontroller。
示例:
let vc = self.storyboard!.instantiateViewControllerWithIdentifier("clientView") as! ClientViewController
vc.delegate = self
self.navigationController?.pushViewController(vc, animated: true)