我真的很难将数据向后传输到UIView控制器

时间:2016-06-30 05:55:42

标签: xcode swift delegates protocols

我在拆分视图中有几个视图控制器。有了这个,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中的某个地方我错过了什么,无法弄清楚我做错了什么。任何帮助将不胜感激。

亲切的问候

韦恩

1 个答案:

答案 0 :(得分:0)

您需要将协议委托分配给您符合要求的viewcontroller。

示例:

let vc = self.storyboard!.instantiateViewControllerWithIdentifier("clientView") as! ClientViewController
vc.delegate = self
self.navigationController?.pushViewController(vc, animated: true)