@@ -66,6 +66,12 @@ open class MapViewController: UIViewController {
66
66
// TODO: Restore searchController state by implementing UIStateRestoring.
67
67
}
68
68
69
+ override open func viewDidDisappear( _ animated: Bool ) {
70
+ super. viewDidDisappear ( animated)
71
+
72
+ search? . cancel ( )
73
+ }
74
+
69
75
override open func didReceiveMemoryWarning( ) {
70
76
super. didReceiveMemoryWarning ( )
71
77
@@ -77,6 +83,7 @@ open class MapViewController: UIViewController {
77
83
fileprivate var removableAnnotations : [ MKAnnotation ] {
78
84
return mapView. annotations. filter ( isNonSelectedPlacemark)
79
85
}
86
+ fileprivate var search : MKLocalSearch ?
80
87
fileprivate var searchQuery = " " {
81
88
didSet {
82
89
updateSearchRequest ( )
@@ -218,7 +225,7 @@ open class MapViewController: UIViewController {
218
225
*/
219
226
@objc fileprivate func searchMapItems( ) {
220
227
let search = MKLocalSearch ( request: searchRequest)
221
- search. start { ( searchResponse, error) in
228
+ search. start { [ unowned self ] ( searchResponse, error) in
222
229
guard let mapItems = searchResponse? . mapItems else {
223
230
print ( " MKLocalSearch error: \( error) " )
224
231
return
@@ -227,6 +234,7 @@ open class MapViewController: UIViewController {
227
234
guard mapItems != self . resultsViewController. mapItems else { return }
228
235
self . resultsViewController. mapItems = mapItems
229
236
}
237
+ self . search = search
230
238
}
231
239
232
240
/**
0 commit comments