UIAlertAction在Swift中弹出到根视图控制器

时间:2015-03-10 18:22:01

标签: ios swift uialertcontroller uialertaction

我正在使用Swift编程语言并使用UIAlertController和“取消”按钮来显示警报。
我正在使用下面的代码来创建取消按钮。

 let cancelAction = UIAlertAction(title: "Cancel", style: UIAlertActionStyle.Cancel, handler: { (alert) -> Void in
    self.navigationController?.popToRootViewControllerAnimated(true)
 })

 alertController.addAction(cancelAction)

点击“取消”按钮时,必须将用户带回根视图控制器 但代码没有编译。它显示的错误如下:

Cannot invoke 'init' with an argument list of type `(title: StringLiteralConvertible, style: UIActionSheetStyle, handler: (($T2) -> Void) -> Void)`

我无法理解如何解决此问题。

3 个答案:

答案 0 :(得分:1)

另一个答案对我来说也不起作用;这一个做到了。 添加此功能

func popToRoot() {
        self.navigationController?.popToRootViewControllerAnimated(true)
}

然后更改原始功能

{ (alert :UIAlertAction!) -> Void in
                self.popToRoot()
}

答案 1 :(得分:1)

你可以试试这个。

 let cancelAction = UIAlertAction(title: "Cancel", style: .cancel, handler: 
          { action in 
             self.navigationController?.popToRootViewController(animated: true)
          } )

答案 2 :(得分:0)

尝试替换(警告):

(alert :UIAlertAction!)