Как получить доступ к свойству заголовка UIAlertAction в Swift? - PullRequest
0 голосов
/ 07 августа 2020

У меня есть UIAlertController с несколькими UIAlertActions. Я хочу получить доступ к свойству заголовка UIAlertAction выбранного действия.

    let ac = UIAlertController(title: "Choose Filter", message: nil, preferredStyle: .actionSheet)
    ac.addAction(UIAlertAction(title: "CIBumpDistortion", style: .default, handler: setFilter))
    ac.addAction(UIAlertAction(title: "CIGaussianBlur", style: .default, handler: setFilter))
    ac.addAction(UIAlertAction(title: "CIPixellate", style: .default, handler: setFilter))
    ac.addAction(UIAlertAction(title: "CISepiaTone", style: .default, handler: setFilter))
    ac.addAction(UIAlertAction(title: "CITwirlDistortion", style: .default, handler: setFilter))
    ac.addAction(UIAlertAction(title: "CIUnsharpMask", style: .default, handler: setFilter))
    ac.addAction(UIAlertAction(title: "CIVignette", style: .default, handler: setFilter))
    ac.addAction(UIAlertAction(title: "Cancel", style: .cancel, handler: nil))
        

Доступ к свойству c .title позволяет получить доступ только к свойству заголовка AlertController.

Изучая документацию Apple , похоже, мне может понадобиться использовать что-то вроде

var title: String? { get }

Однако я не знаю, как использовать этот синтаксис.

1 Ответ

1 голос
/ 07 августа 2020

Синтаксис в документации показывает, как свойство title объявлено , а не то, как вы могли бы ссылаться на него в своем коде (хотя он может дать некоторое представление).

Поскольку это свойство, вы можете получить к нему доступ через точечную нотацию .title, если у вас есть экземпляр UIAlertAction. К счастью, у вас есть доступ к выбранному экземпляру UIAlertAction: параметр, переданный в функцию handler!

В обработчике действия предупреждения, т.е. setFilter, вы можете получить доступ к его параметрам .title. Это будет заголовок выбранного действия.

func setFilter(_ action: UIAlertAction) {
    let selectedActionTitle = action.title
    ...
}
...