performSegueWithIdentifier 错误
performSegueWithIdentifier error
已更新:
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
if segue.identifier == "addMapItem" {
geocoder.geocodeAddressString(textAddress.text, completionHandler: {(placemarks: [AnyObject]!, error: NSError!) -> Void in
if let placemark = placemarks?[0] as? MKPlacemark {
var lat = placemark.coordinate.latitude
var long = placemark.coordinate.longitude
var coordinates = placemark.coordinate
var annotation = MKPointAnnotation()
annotation.coordinate = placemark.coordinate
annotation.title = self.textName.text
annotation.subtitle = self.textAddress.text
self.annotations.append(annotation)
var destination : FirstViewController = segue.destinationViewController as! FirstViewController
destination.savedItems = self.annotations
}
})
}
}
在我的 AddLocation 视图控制器上,我有 2 个 segues。一个由按下按钮触发,它获取输入的数据并将其添加到 table。另一个 segue(我们目前正在处理的那个)获取数据,将地址转换为注释,然后将该注释传递到我的地图视图控制器上的变量并添加注释。
不要使用 UIButton.self
作为发件人,而是使用 sender
。而且你不能使用 performSegueWithIdentifier
:
的闭包
performSegueWithIdentifier("addMapItem", sender: UIButton.self) {
// Some code
}
使用:
performSegueWithIdentifier("addMapItem", sender: sender)
我猜你忘了在这一行添加 self
:
destination.savedItems = annotations // Should be self.annotations
这是应该放置代码的地方,以便在您使用 performSegueWithIdentifier
:
时调用它
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
if segue.identifier == "addMapItem" {
// Your code
}
}
已更新:
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
if segue.identifier == "addMapItem" {
geocoder.geocodeAddressString(textAddress.text, completionHandler: {(placemarks: [AnyObject]!, error: NSError!) -> Void in
if let placemark = placemarks?[0] as? MKPlacemark {
var lat = placemark.coordinate.latitude
var long = placemark.coordinate.longitude
var coordinates = placemark.coordinate
var annotation = MKPointAnnotation()
annotation.coordinate = placemark.coordinate
annotation.title = self.textName.text
annotation.subtitle = self.textAddress.text
self.annotations.append(annotation)
var destination : FirstViewController = segue.destinationViewController as! FirstViewController
destination.savedItems = self.annotations
}
})
}
}
在我的 AddLocation 视图控制器上,我有 2 个 segues。一个由按下按钮触发,它获取输入的数据并将其添加到 table。另一个 segue(我们目前正在处理的那个)获取数据,将地址转换为注释,然后将该注释传递到我的地图视图控制器上的变量并添加注释。
不要使用 UIButton.self
作为发件人,而是使用 sender
。而且你不能使用 performSegueWithIdentifier
:
performSegueWithIdentifier("addMapItem", sender: UIButton.self) {
// Some code
}
使用:
performSegueWithIdentifier("addMapItem", sender: sender)
我猜你忘了在这一行添加 self
:
destination.savedItems = annotations // Should be self.annotations
这是应该放置代码的地方,以便在您使用 performSegueWithIdentifier
:
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
if segue.identifier == "addMapItem" {
// Your code
}
}