警报控制器的最佳实践🚨

嘿! 让我们美化警报控制器🤓。 我们将创建警报控制器,并尝试尽可能地对其进行清理。

让我们潜入

当我需要在我的应用程序中使用警报时 ,我便开始像以前一样创建警报

您可能对此很熟悉。 可以,但是如果您的应用需要多个警报,该怎么办? 🧐

答:复制并粘贴,更改字符串即可。感谢您再见👋🏻

是的,它将起作用work

但是,如果您的应用程序需要多个警报和DRY(请勿重复自己)代码,该怎么办?

嗯? 然后世界变了🙃

我们可以从创建一个函数开始,让我们尝试

现在,您可以在需要调用该警报时调用myAlertVC()方法,但是这里的问题是您无法更改将显示与myAlertVC()调用的警报相同的警报的字符串。

让我们向myAlertVC()函数添加一些功能,以便我们可以更改字符串。

这就是您如何调用此方法myAlertVC(title: "Hello!", message: "Wazzup?", actionTitle: "OK")

真好! 每当需要显示新警报时,都可以调用此方法。 但是仍然不是最好的选择。 你只能叫它 在当前的ViewController上。 对于其他UIViewController子类,我们需要创建新函数,如上面的函数。

别忘了你不应该重复自己

因此,我们还需要诸如全局函数之类的东西,以便我们可以在任何UIViewController子类上调用它。

让我们尝试为警报创建一个新类

我们on vc: UIViewController参数on vc: UIViewController添加on vc: UIViewController参数,因为我们需要在调用此方法的视图控制器上显示它。

现在,您可以转到视图控制器并创建MyAlertController的实例

let myAlertController = MyAlertController()

现在您可以调用myAlertController的方法

好的,我们现在出发了,我们有警报控制器的特殊类。 同一类more上不再有代码垃圾。

让我们看看是否可以进一步删除一些代码并清理视图控制器。

我们可以删除字符串并在MyAlertController类上为每个警报创建函数

现在,您可以在我们的视图控制器上调用showErrorMessage(...)函数。

myAlertController.showErrorMessage(on: self)

凉! 从现在开始,您可以在任何UIViewController子类use上使用它。

(on: self)呢? 每次调用该方法时都要键入吗? 然后我们再重复一次ourselves。 不用担心,我们可以摆脱它。 让我们重新思考🧐。

因此,无论何时需要警报控制器,我们都在UIViewController子类上,因此我们将其呈现在UIViewController上 。 如果我们扩展UIViewController怎么办?

似乎还可以。

您仍然可以通过在此扩展上添加更多功能来摆脱字符串

现在,您可以在任何UIViewController类中调用showAlert(...)showHeyAlert() (包括UITableViewControllerUICollectionViewController等,因为它们都是UIViewController的子类)

您可以继续设置默认操作标题,如果不自定义它,则可以隐藏actionTitle参数。

我们准备在任何UIViewController子类上使用我们的方法。

如果您呈现自定义警报,则可以致电:

showAlert(withTitle: "My Custom Title", message: "Custom Message", actionTitle: "YESS")

如果您要显示自定义警报,但操作标题为“ OK”,则可以省略actionTitle

showAlert(withTitle: "My Custom Title", message: "Custom Message")

您还可以调用showHiAlertWithOK()showHeyAlert()

您的挑战

创建更多类似于showHeyAlert()函数,这些函数将适合您的项目,并且您还可以通过添加一些处理程序,完成块等来改进它们。

今天就这样,谢谢阅读

祝您编码愉快

在接下来的博客中见you