2017-03-24 2 views
0

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.

+0

Wo haben Sie 'mapContainer' deklariert. Zeigen Sie den Code. –

+0

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 –

+1

Wie fügst du 'TrackMapView' zu' mapContainer' hinzu? –

Antwort

0

ok das ist jetzt gelöst. Ich schien eine fehlerhafte Ansicht unter meiner Kartenansicht auf dem Storyboard zu haben, löschte die mapView und die Standalone-Ansicht, fügte die Mapview hinzu und es funktioniert gut.

Danke für alle Eingabe