我有一个UIViewController,它有一个分段控制器,从这个VC我有2个容器。容器1加载一个tableview并且工作得很好,容器2设置了MKMapView但是没有加载,当我为它选择段时只有一个空白屏幕。
这是我的TrackMapView代码。
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)
}
}
这是我的细分代码,
@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
})
}
}
该类正确连接到故事板中的容器,并且IBOutlets似乎在正确的位置连接。
TrackTableView(按预期工作)
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()
}
此代码下面还有许多功能。
我的任何ViewControllers中都没有任何Segue代码,它都是通过故事板完成的。
答案 0 :(得分:0)
好的,现在已经解决了。我在故事板上的mapview下面似乎有一个错误的视图,删除了mapView和独立视图,重新添加了mapview,它运行正常。
感谢所有输入