【发布时间】:2017-09-10 22:43:22
【问题描述】:
这里是 Swift 3 的总菜鸟。我需要做的就是通过 2 个用户输入文本字段将一个双精度值从一个 ViewController 传递到另一个。我尝试了许多解决方案,并阅读了在 ViewControllers 之间传递数据的所有内容。我收到“致命错误:在展开可选值时意外发现 nil”。我很难理解变量的包装和展开,我相信这很简单。
这是我的第一个 ViewController:
import UIKit
var longitude: Double?
var latitude: Double?
class ViewController: UIViewController {
@IBOutlet var getLongitude: UITextField!
@IBOutlet var getLatitude: UITextField!
@IBOutlet var mapbutton: UIButton!
override func viewDidLoad() {
super.viewDidLoad()
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
@IBAction func MapBtn(_ sender: Any) {
performSegue(withIdentifier: "segue", sender: self)
longitude = Double(getLongitude.text!)!
latitude = Double(getLatitude.text!)!
}
}
这是 SecondViewController:
class SecondViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
let camera = GMSCameraPosition.camera(withLatitude: latitude!, longitude: longitude!, zoom: 6.0)
let mapView = GMSMapView.map(withFrame: CGRect.zero, camera: camera)
view = mapView
// Creates a marker in the center of the map.
let marker = GMSMarker()
marker.position = CLLocationCoordinate2D(latitude: latitude!, longitude: longitude!)
marker.map = mapView
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
}
【问题讨论】: