我有一个带有多个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))访问ac.title属性只访问AlertController标题属性。
看一下Apple文档,看起来我可能需要使用以下内容
var title: String? { get }但是,对于如何使用这种语法,我并不熟悉。
发布于 2020-08-07 00:20:49
文档中的语法向您展示了title属性是如何声明的,而不是如何在代码中引用它(尽管它可以给出一些见解)。
因为它是一个属性,所以如果您有一个.title实例,可以通过点表示法UIAlertAction来访问它。幸运的是,您确实可以访问选定的UIAlertAction实例:传递给handler函数的参数!
在警报操作的处理程序(即setFilter )中,您可以访问其参数的.title。这将是所选动作的标题。
func setFilter(_ action: UIAlertAction) {
let selectedActionTitle = action.title
...
}https://stackoverflow.com/questions/63293380
复制相似问题