Я хотел бы установить местоположение на карте кнопкой, которая принадлежит ячейке в tableView. Дело в том, как получить текущий момент моего ViewController вместо создания нового? Метод в моем CustomCell выглядит следующим образом:Swift - проблема с доступом к mapView из другого класса
@IBAction func mapButton(sender: AnyObject) {
ViewController().showPinOnMap(Location)
}
}
Я в конечном итоге с MAPview равным нулю, я думаю, потому что я instatiate новый ViewContoller вместо того, чтобы получить доступ к тому, который уже существует. Я читал о методах типа, но я не уверен, как с ними бороться. В моем ViewController я попробовал:
class func showPinOnMap(location: CLLocationCoordinate2D?){
if(location != nil){
map.setCenterCoordinate(location!, animated: true)
}
}
но результаты со следующей ошибкой
Я думаю, все дело о доступе к экземпляру ViewController вместо создали совершенно новую (поправьте меня, если я неправильно).
Я был бы признателен за любую помощь, заранее спасибо
Это происходит потому, что вы используете 'map' переменную экземпляра в методе' class' – sage444
Как это исправить? удалить «класс» и остановить метод типа usyng и искать другой подход? – DCDC
Ответ зависит от архитектуры приложения, но если вы хотите использовать только один экземпляр ViewController, попробуйте реализовать singleletone или создать экземпляр каждый раз, когда mapButton нажал – sage444