Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/95.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 我想用swift代码访问第二个视图控制器中的var_Ios_Swift_Uiviewcontroller - Fatal编程技术网

Ios 我想用swift代码访问第二个视图控制器中的var

Ios 我想用swift代码访问第二个视图控制器中的var,ios,swift,uiviewcontroller,Ios,Swift,Uiviewcontroller,嗨,这是我到目前为止的代码 import UIKit import MapKit import CoreLocation class ViewController: UIViewController, MKMapViewDelegate, CLLocationManagerDelegate { @IBOutlet var map: MKMapView! var locationManager = CLLocationManager() override func v

嗨,这是我到目前为止的代码

import UIKit
import MapKit
import CoreLocation

class ViewController: UIViewController, MKMapViewDelegate, CLLocationManagerDelegate {

    @IBOutlet var map: MKMapView!
    var locationManager = CLLocationManager()

    override func viewDidLoad() {
        super.viewDidLoad()
        locationManager.delegate = self
        locationManager.desiredAccuracy = kCLLocationAccuracyBest
        locationManager.requestWhenInUseAuthorization()
        locationManager.startUpdatingLocation()
    }

    func locationManager(manager: CLLocationManager!, didUpdateLocations locations: [AnyObject]!) {
        var userLocation:CLLocation = locations[0] as! CLLocation
        var latitude = userLocation.coordinate.latitude
        var longitude = userLocation.coordinate.longitude
        var latDelta:CLLocationDegrees = 0.05
        var lonDelta:CLLocationDegrees = 0.05
        var span:MKCoordinateSpan = MKCoordinateSpanMake(latDelta, lonDelta)
        var location:CLLocationCoordinate2D = CLLocationCoordinate2DMake(latitude, longitude)   
        var region:MKCoordinateRegion = MKCoordinateRegionMake(location, span)

        self.map.setRegion(region, animated: false)
        println(latitude)
    }

    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
    }
}
我想在显示
纬度
经度
航向
速度的第二视图控制器中访问
位置管理器
功能中的信息。我是个新手,所以任何帮助都会很好。干杯

  • 将要传递给第二个VC的变量从本地范围移动到类范围:

    import UIKit
    import MapKit
    import CoreLocation
    
    class ViewController: UIViewController, MKMapViewDelegate, CLLocationManagerDelegate {
    
        @IBOutlet var map: MKMapView!
    
    
       var locationManager = CLLocationManager()
       var longitude:CLLocationDegrees!
       var latitude:CLLocationDegrees!
    
      override func viewDidLoad() {
        super.viewDidLoad()
        locationManager.delegate = self
        locationManager.desiredAccuracy = kCLLocationAccuracyBest
        locationManager.requestWhenInUseAuthorization()
        locationManager.startUpdatingLocation()
    }
    
  • 使用变量创建目标UIViewController以保存传递的值:

    import UIKit
    import MapKit
    import CoreLocation
    
    class MyDestinationViewController: UIViewController {
      var longitude:CLLocationDegrees!
      var latitude:CLLocationDegrees!
    
        override func viewDidLoad() {
            super.viewDidLoad()
        }
    }
    
  • prepareforsgue
    方法添加到要从中发送数据的viewcontroller:

    override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
        let destinationVC = segue.destinationViewController as! MyDestinationViewController
        destinationVC.latitude = latitude
        destinationVC.longitude = longitude
    }
    

  • 如果您不想使用segue,您可以在演示VC之前实例化targetViewController并传递变量。

    非常感谢您为我整理了它,感谢您的快速回复。