0

我正在使用 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)`

我不明白如何解决这个问题。

4

3 回答 3

1

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

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

然后改变原来的功能

{ (alert :UIAlertAction!) -> Void in
                self.popToRoot()
}
于 2015-03-25T02:51:54.880 回答
1

你可以试试这个。

 let cancelAction = UIAlertAction(title: "Cancel", style: .cancel, handler: 
          { action in 
             self.navigationController?.popToRootViewController(animated: true)
          } )
于 2017-07-27T07:21:58.400 回答
0

尝试将(警报)替换为:

(alert :UIAlertAction!)

于 2015-03-10T18:53:26.497 回答