3

如何在 swift 中为警报视图设置标签。我无法设置 tag alert.tag = 1,如果我这样做了,我会收到类似'UIAlertController' does not have a member named 'tag'. 下面是我写的代码,

var alert = UIAlertController(title: "Title", message: "Message", preferredStyle: UIAlertControllerStyle.Alert)
alert.addAction(UIAlertAction(title: "YES", style: UIAlertActionStyle.Default, handler:{ (ACTION :UIAlertAction!)in }))
alert.addAction(UIAlertAction(title: "NO", style: UIAlertActionStyle.Default, handler:{ (ACTION :UIAlertAction!)in }))

alert.tag = 1 // Error is shown here

self.presentViewController(alert, animated: true, completion: nil)

我们曾经在 Obj-C 中为警报视图设置标签。有人可以帮我解决这个问题。提前致谢。

4

2 回答 2

5

UIAlertController没有财产tag。提示在错误“'UIAlertController' 没有名为 'tag' 的成员”中。

UIAlertController不是它的子类,UIView它是 的子类UIViewController

几乎没有理由使用tag它,即使它可用。

您可能想要的是将其设置为属性。

于 2014-11-04T09:14:28.800 回答
5

我喜欢@Fogmeister 的回答并想补充:

您想tag在警报视图上使用 a 的唯一原因是识别它,以便您可以区分哪个正在调用委托方法(无需将每个电位存储在属性中并检查所有指针的开销)。这并不理想,但它是一种快速解决方法,并且如前所述,它通常是某种黑客行为。

整个委托方法被替换为UIAlertController基于块的接口,因此不再需要使用tag. 您提供给警报操作的块可以self使用专用代码进行引用,并且可以捕获您需要的任何局部变量,因此不需要执行您之前可能使用标签的相同操作。

于 2014-11-04T09:34:49.500 回答