如何在iOS Swift中做一个简单的提醒?

时间:2014-11-25 17:13:51

标签: swift uialertcontroller

为了简单(和调试),我想从任何地方调用一个非常简单的警告对话框(!),类似于:

func Warning(myText:String){code}

我第一次尝试使用UIAlertController导致了这个:

func Warning(delegate: AnyObject, message: String) {
    var alert = UIAlertController(title: "Warning", message: message, preferredStyle: UIAlertControllerStyle.Alert)
    alert.addAction(UIAlertAction(title: "OK", style: UIAlertActionStyle.Default, handler: nil))
    delegate.presentViewController(alert, animated: true, completion: nil)
}

这是有效的,但只能直接从一个类调用,例如:

Warning(self,"Hello")

但是当它在另一个函数内部使用时它没有。 “自我”引用不是(直接)可用的。

为了更清楚,我们假设:

    func A(){
      Warning (self,"Warning inside a function")
}

如果调用此函数A,即使在类中,对self的引用也是未知的!

有人为此解决了问题,还是我没有正确看到问题?

2 个答案:

答案 0 :(得分:2)

您似乎已经从func Warning(myText:String){code}

中写了class

这就是为什么你可以用Warning(self,"Hello")

打电话的原因

并未获得self参考

让你的方法进入你的班级!

所以像这样,

public class Alert: NSObject {    
    class func presentWarning(delegate: UIViewController, message: String) {
        let alert = UIAlertController(title: "Warning", message: message, preferredStyle: UIAlertControllerStyle.alert)
        alert.addAction(UIAlertAction(title: "OK", style: UIAlertActionStyle.default, handler: nil))
        delegate.present(alert, animated: true, completion: nil)
    }    
}

在控制器中使用它,

Alert.presentWarning(self,"Hello")

答案 1 :(得分:2)

试试这个样本我希望这会有所帮助! https://github.com/orazz/SampleAlert

enter image description here