我的应用程序包含大量ViewController
个。还有一组函数返回UIAlertControllers
通知用户有关其帐户的事件。
以下是一个这样的功能的例子:
func signInSuccessAlert() -> UIAlertController {
//signInSuccessAlert
let signInSuccessAlert = UIAlertController(title: "Success", message: "You have been successfully signed in!", preferredStyle: .alert)
signInSuccessAlert.addAction(UIAlertAction(title: "Okay", style: .default, handler: nil))
return signInSuccessAlert
}
我的目标是能够在一行中显示这些UIAlertController
。像这样:
present(signInSuccessAlert(), animated: true, completion: nil)
使这些功能仅用于需要它们的ViewController
的最佳方式是什么?与全局声明它们相反。
答案 0 :(得分:0)
您可以创建UIViewController的扩展并在那里声明所有这些函数。 像这样:
extension UIViewController
{
func signInSuccessAlert() -> UIAlertController {
//signInSuccessAlert
let signInSuccessAlert = UIAlertController(title: "Success", message: "You have been successfully signed in!", preferredStyle: .alert)
signInSuccessAlert.addAction(UIAlertAction(title: "Okay", style: .default, handler: nil))
return signInSuccessAlert
}
}
这样所有的viewcontrollers都可以访问这些功能。如果您想要只访问某些视图控制器,则必须使用评论中建议的AgRizzo等协议。