使用UIAlertController显示警报的简单示例

好吧,今天我将介绍UIAlertController,几乎可以肯定的是,使用iOS(Swift)制作应用程序时将实现该UIAlertController。 众所周知,iOS 8已弃用UIAlertView,并且出现了UIAlertController。

当您开始开发iOS时,我认为您每次显示警报时都经常编写类似的代码(尽管可能不存在…)

这次,我介绍使用此类UIAlertController的简单实用程序类。
尽管称为UIAlertController的模式也多种多样,但在这里我以普通标题,消息内容,Cancel,OK组成的模式为例进行介绍。

实现此方法时,常规方法如下所示。

  let alert = UIAlertController(标题:“默认样式”,消息:“标准警报。”,preferredStyle:.alert) 

alert.addAction(UIAlertAction(title:“ OK”,样式:.default,处理程序:nil))
alert.addAction(UIAlertAction(title:“ Cancel”,样式:.cancel,处理程序:nil))

目前(警告,动画:正确,完成:无)

例如,每次显示警报时都编写类似的代码很痛苦。 因此,我将常见的Cancel,OK格式总结为实用程序类。

daihase / iOS_Sample
通过在GitHub上创建一个帐户为iOS_Sample开发做出贡献。 github.com

我在iOS_Sample存储库中创建了一个简单的示例项目UIAlertControllerSample。 使用很简单。 只需在要显示对话框的位置进行调用,如下所示。

ViewController.swift

 让alertTitle =“标题” 
 让alertMessage =“ message1 \ nmessage2” 
 让positiveButtonText =“确定” 
 让negativeButtonText =“取消” 
  Util.sharedInstance.showAlertView(title:self.alertTitle,消息:self.alertMessage,actionTitles:[self.negativeButtonText,self.positiveButtonText],操作:[ 
  {()->()在 
 打印(self.negativeButtonText) 
  }, 
  {()->()在 
 打印(self.positiveButtonText) 
  }] 

Util.swift(作为参考,这是一个总结为Util的UIAlertController)

 导入UIKit 
  Util类:NSObject { 
  var rootWindow:UIWindow! 
  // Singleton。 
 类var sharedInstance:实用程序{ 
  struct Static { 
 静态let实例:Util = Util() 
  } 
 返回Static.instance 
  } 
 私人替代init(){} 
  //显示警报。 
  func showAlertView( 
 标题:字符串?  =无, 
 讯息:字串, 
  actionTitles:[String], 
 动作:[()->()]?){ 
  //创建新窗口。 
 让窗口= UIWindow(框架:UIScreen.main.bounds) 
  window.backgroundColor = UIColor.clear 
  window.rootViewController = UIViewController() 
  Util.sharedInstance.rootWindow = UIApplication.shared.windows [0] 
  //创建alertview。 
 让警报= UIAlertController(标题:标题,消息:消息,preferredStyle:UIAlertControllerStyle.alert) 
 标题标题{ 
  //添加动作。 
  let action = UIAlertAction(title:title,style:.default,handler:{(action:UIAlertAction)-> Void in 
 如果让行为=行为{ 
 如果acts.count> = actionTitles.count { 
  act [actionTitles.index(of:title)!]() 
  } 
  } 
  DispatchQueue.main.async(execute:{()-> Void in 
  alert.dismiss(动画:true,完成:nil) 
  window.isHidden = true 
  window.removeFromSuperview() 
  Util.sharedInstance.rootWindow.makeKeyAndVisible() 
  }) 
  }) 
  alert.addAction(动作) 
  } 
  window.windowLevel = UIWindowLevelAlert 
  window.makeKeyAndVisible() 
  window.rootViewController?.present(警告,动画:true,完成:无) 
  } 
  } 

作为方法参数,使用字符串指定标题,消息正文,与“取消”相对应的按钮以及与“确定”相对应的按钮。 顺便说一句,参数action是一个允许您设置闭包的数组,因此您可以在按下OK按钮之后轻松地进行其他处理。

如果只想显示“确定”按钮,则仅为操作指定“确定”字符串。

我希望这对那些学习Swift和iOS App的人有所帮助。