Ich habe einen UIViewController, der einen segmentierten Controller hat, von diesem VC habe ich 2 Container. Container 1 lädt eine Tabellenansicht und funktioniert gut, Container 2 hat eine MKMapView eingerichtet, lädt aber nicht, hat nur einen leeren Bildschirm, wenn ich das Segment dafür auswähle.mapView lädt nicht in Container
Dies ist mein TrackMapView-Code.
import UIKit
import MapKit
class TrackMapView: UIViewController {
@IBOutlet weak var mapView: MKMapView!
override func viewDidLoad() {
super.viewDidLoad()
mapView.mapType = MKMapType.standard
let location = CLLocationCoordinate2D(latitude: 23.0225,longitude: 72.5714)
let span = MKCoordinateSpanMake(0.05, 0.05)
let region = MKCoordinateRegion(center: location, span: span)
mapView.setRegion(region, animated: true)
let annotation = MKPointAnnotation()
annotation.coordinate = location
annotation.title = "jim"
annotation.subtitle = "smith"
mapView.addAnnotation(annotation)
}
}
Das ist mein Segmentcode,
@IBAction func showContainer(_ sender: UISegmentedControl) {
if sender.selectedSegmentIndex == 0 {
UIView.animate(withDuration: 0.5, animations: {
self.tableContainer.alpha = 1
self.mapContainer.alpha = 0
})
}else {
UIView.animate(withDuration: 0.5, animations: {
self.tableContainer.alpha = 0
self.mapContainer.alpha = 1
})
}
}
Die Klasse ist mit dem Behälter in dem Storyboard richtig und die IBOutlets scheinen an der richtigen Stelle angeschlossen werden.
TrackTableView auch
import UIKit
import GoogleMobileAds
import FirebaseDatabase
import CoreLocation
import MapKit
class TrackTableView: UIViewController, UITableViewDelegate, UITableViewDataSource, UISearchBarDelegate {
@IBOutlet weak var tableView: UITableView!
@IBOutlet weak var searchBar: UISearchBar!
var TR: newTracks!
var track = [newTracks]()
var items: [newTracks] = []
var filteredTrack = [newTracks]()
var inSearchMode = false
override func viewDidLoad() {
super.viewDidLoad()
tableView.dataSource = self
tableView.delegate = self
searchBar.delegate = self
searchBar.returnKeyType = UIReturnKeyType.done
getTrackData()
}
Es gibt eine Reihe von Funktionen unter diesem Code (die wie erwartet funktioniert).
Ich habe keinen Segue-Code in einem meiner ViewControllers, es ist alles über Storyboard getan.
Wo haben Sie 'mapContainer' deklariert. Zeigen Sie den Code. –
in meinem Haupt ViewController mit folgenden "@IBOutlet schwach var mapContainer: UIView!" "@IBOutlet schwach var tableContainer: UIView!" Diese sind mit den entsprechenden Containern im Storyboard verbunden –
Wie fügst du 'TrackMapView' zu' mapContainer' hinzu? –