警报控制器的最佳实践🚨
嘿! 让我们美化警报控制器🤓。 我们将创建警报控制器,并尝试尽可能地对其进行清理。
让我们潜入
当我需要在我的应用程序中使用警报时 ,我便开始像以前一样创建警报 。
您可能对此很熟悉。 可以,但是如果您的应用需要多个警报,该怎么办? 🧐
答:复制并粘贴,更改字符串即可。感谢您再见👋🏻
是的,它将起作用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()
(包括UITableViewController , UICollectionViewController等,因为它们都是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