私は、ロケーションマネージャの関数から緯度と経度を抽出して、UITableViewに表示しようとしています。私はそれが場所の更新としてTableViewを更新したい。しかし、Collect
配列はまだ空ですか? どうすればいいですか? すべての入力をいただければ幸いです!他の関数でLocation Manager関数の値を使用する
は、ここに私のコードです:
class ThirdViewController: UIViewController, CLLocationManagerDelegate, UITableViewDelegate, UITableViewDataSource{
@IBOutlet weak var map: MKMapView!
@IBOutlet var Tableview: UIView!
let manager = CLLocationManager()
var Collect = [Double]()
func locationManager(_ manager: CLLocationManager, didUpdateLocations locations: [CLLocation]) {
let location = locations[0]
let span:MKCoordinateSpan = MKCoordinateSpanMake(0.01,0.01) //shows the size of map screen
let myLocation:CLLocationCoordinate2D = CLLocationCoordinate2DMake(location.coordinate.latitude,location.coordinate.longitude)
let region:MKCoordinateRegion = MKCoordinateRegionMake(myLocation, span)
map.setRegion(region, animated: true)
self.map.showsUserLocation = true
let lat = (location.coordinate.latitude)
let long = (location.coordinate.longitude)
Collect.append(lat)
Collect.append(long)
}
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return Collect.count
}
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = UITableViewCell(style: UITableViewCellStyle.default, reuseIdentifier: "TableCell")
cell.textLabel?.text = Collect[indexPath.row]
return cell
}
override func viewDidLoad() {
super.viewDidLoad()
manager.requestWhenInUseAuthorization()
manager.startUpdatingLocation()
super.viewDidLoad()
print(Collect)
}
あなたがそれぞれ更新後のテーブルをリロードする必要があります。 – rmaddy