Не могу "отменить" действия кнопки, которую я создал с помощью искусственной кнопки "Отмена".Зачем? - PullRequest
0 голосов
/ 30 сентября 2018

Итак, у меня есть навигационное приложение, которое я создаю, и у меня есть кнопка с названием "meetUp", которая позволяет мне помещать несколько аннотаций вместо удаления старой, как только я добавляю новую, которая является настройкой по умолчанию.запрограммированы.Эта кнопка работает нормально, но я сделал кнопку отмены, которую я хочу вернуть приложению в том состоянии, в котором оно было до того, как я нажал кнопку «MeetUp».Что не так, все, что он делает, это удаляет аннотации, но он не скрывает себя и не отключает себя, не включает кнопку «MeetUp» и не изменяет ее альфа-яркость.Вот код, который на это влияет:

в разделе viewDidLoad:

    meetUpOutlet.layer.cornerRadius = 10
    cancelOutlet.isHidden = true
    cancelOutlet.isEnabled = false
    cancelOutlet.layer.cornerRadius = 10

Кнопка "meetUp" и мое расширение, которое создает аннотации (в нем есть оператор 'if', использующий мой«meetUpOutlet», который позволяет работать кнопке «meetUp»):

@IBAction func meetUpButton(_ sender: Any) {

    meetUpOutlet.isEnabled = false
    meetUpOutlet.alpha = 0.5
    cancelOutlet.isEnabled = true
    cancelOutlet.isHidden = false

    }


extension ViewController: handleMapSearch {
func dropPinZoomIn(placemark:MKPlacemark) {
    resultSearchController?.isActive = false

    // cache the pin
    selectedPin = placemark
    // clear existing pins
    if meetUpOutlet.isEnabled == true {

        mapView.removeAnnotations(mapView.annotations)

    } else {

    }
    // meetUpOutlet.isSelected is set to true because 'isSelected' is set to NO by default, so setting it to true is like saying it is true that the button HAS NOT been selected, and therefore the annotations will continue to be removed.
    let annotation = MKPointAnnotation()
    annotation.coordinate = placemark.coordinate
    annotation.title = placemark.name
    if let city = placemark.locality,
        let state = placemark.administrativeArea {
        annotation.subtitle = "(\(city)) (\(state))"
    }
    mapView.addAnnotation(annotation)
    let span = MKCoordinateSpanMake(0.05, 0.05)
    let region = MKCoordinateRegionMake(placemark.coordinate, span)
    mapView.setRegion(region, animated: true)
}
}

Вот кнопка «Отмена»:

@IBAction func cancelButton(_ sender: Any) {

    mapView.removeAnnotations(mapView.annotations)




        cancelOutlet.isEnabled = false
        cancelOutlet.isHidden = true
        meetUpOutlet.isEnabled = true
        meetUpOutlet.alpha = 1.0

    }

Кто-нибудь знает, как решить эту проблему?Используя Xcode 9 и Swift 4. Я просмотрел StackOverflow и не смог найти ответ.Спасибо!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...