连续的 UIAlertControllers - IOS - Swift

Posted

技术标签:

【中文标题】连续的 UIAlertControllers - IOS - Swift【英文标题】:Consecutive UIAlertControllers - IOS - Swift 【发布时间】:2016-08-30 19:39:02 【问题描述】:

我想展示一个连续的警报控制器,从 Swift 中第一个警报控制器的动作开始。

所以场景是这样的:

1) Alert_A 有 2 个选项:

a) 选择此选项后,呈现 Alert_B 也会关闭 Alert_A

b) 选择此选项后,当前 Alert_C 也会关闭 Alert_A

2) Alert_B/Alert_C 各有 2 个选项:

a) 行动警报_B/行动警报_C

b) 取消关闭 Alert_B/Alert_C

我在 Apple 文档中读到不建议在警报中显示警报。

我还添加了指向警报层次结构的链接:

Alert Diagram

【问题讨论】:

您能发布到目前为止您尝试过的代码吗?你看过UIAlertController 的文档吗?特别是UIAlertAction?这是一个很棒的教程:nshipster.com/uialertcontroller 【参考方案1】:

试试这个:

 let alertController = UIAlertController(title: "Choose", message: "Choose one of two alert options", preferredStyle: UIAlertControllerStyle.Alert)
        let Alert1 = UIAlertAction(title: "Alert1", style: UIAlertActionStyle.Default)  (result : UIAlertAction) -> Void in

let alertController = UIAlertController(title: "Alert1", message: "You chose Alert1", preferredStyle: UIAlertControllerStyle.Alert)
        let Action1 = UIAlertAction(title: "Action1", style: UIAlertActionStyle.Default)  (result : UIAlertAction) -> Void in
            /////////YOUR Action1////////
        
        let CancelAction = UIAlertAction(title: "Cancel", style: UIAlertActionStyle.Cancel)  (result : UIAlertAction) -> Void in
        

        alertController.addAction(Action1)
        alertController.addAction(CancelAction)


    self.presentViewController(alertController, animated: true, completion: nil)
        
        let Alert2 = UIAlertAction(title: "Alert2", style: UIAlertActionStyle.Default)  (result : UIAlertAction) -> Void in

let alertController = UIAlertController(title: "Alert2", message: "You chose Alert2", preferredStyle: UIAlertControllerStyle.Alert)
        let Action2 = UIAlertAction(title: "Action2", style: UIAlertActionStyle.Default)  (result : UIAlertAction) -> Void in
            /////////YOUR Action2////////
        
        let CancelAction = UIAlertAction(title: "Cancel", style: UIAlertActionStyle.Cancel)  (result : UIAlertAction) -> Void in
        

        alertController.addAction(Action2)
        alertController.addAction(CancelAction)
    self.presentViewController(alertController, animated: true, completion: nil)
 


            alertController.addAction(Alert1)
            alertController.addAction(Alert2)
self.presentViewController(alertController, animated: true, completion: nil)

更好的方法:

let alertController = UIAlertController(title: "Choose", message: "Action1 or Action2?", preferredStyle: UIAlertControllerStyle.Alert)
    let Action1 = UIAlertAction(title: "Action1", style: UIAlertActionStyle.Default)  (result : UIAlertAction) -> Void in
        ///////Action1///////
    
    let Action2 = UIAlertAction(title: "Action2", style: UIAlertActionStyle.Default)  (result : UIAlertAction) -> Void in
        //////Action2///////
    
    let CancelAction = UIAlertAction(title: "Cancel", style: UIAlertActionStyle.Cancel)  (result : UIAlertAction) -> Void in
    

    alertController.addAction(Action1)
    alertController.addAction(Action2)


      alertController.addAction(CancelAction)

self.presentViewController(alertController, animated: true, completion: nil)

【讨论】:

好@MikeMe。干得好

以上是关于连续的 UIAlertControllers - IOS - Swift的主要内容,如果未能解决你的问题,请参考以下文章

关闭当前呈现的所有 UIAlertControllers

为多个 UIAlertControllers 调度 asyncAfter

UIAlertAction 处理程序延迟后运行

解析登录错误不会弹出

一致连续和李普希兹条件

不连续变异与不连续变异~~急~