我发现 void 返回警报,但未找到字符串警报返回。 尝试将 Void 转换为字符串
// return Void Alert
func returnAlert(title: String!, message: String! ,success: (() -> Void)? , cancel: (() -> Void)?) {
dispatch_async(dispatch_get_main_queue(), {
let alertController = UIAlertController(title:title,
message: "",
preferredStyle: UIAlertControllerStyle.Alert)
self.newQtyField = UITextField()
self.newQtyField.keyboardType = .NumberPad
func addTextField(textField: UITextField!){
// add the text field and make the result global
let row = self.array[Int(message)!]
textField.text = String(row.pbQty!)
self.newQtyField = textField
}
let cancelLocalized = NSLocalizedString("cancel", tableName: "activity", comment:"")
let okLocalized = NSLocalizedString("ok", tableName: "Localizable", comment:"")
let cancelAction: UIAlertAction = UIAlertAction(title: cancelLocalized,
style: .Cancel) {
action -> Void in cancel?()
}
let successAction: UIAlertAction = UIAlertAction(title: okLocalized,
style: .Default) {
action -> Void in success?()
}
alertController.addTextFieldWithConfigurationHandler(addTextField)
alertController.addAction(cancelAction)
alertController.addAction(successAction)
self.presentViewController(alertController, animated: true, completion: nil)
})
}
//底部调用乐趣 |我认为成功:{ () to success: { textfield , but not working how...需要你的帮助
returnAlert("title", message: "msg", success: { () -> Void in
})
{ () -> Void in
print("user canceled")
}
很难理解您在问题中所说的内容。
你应该把方法定义改成这样:
func returnAlert(title: String!, message: String! ,success: ((text:String) -> Void)? , cancel: (() -> Void)?) {
并更改 successAction
以返回 UITextField 的值:
let successAction: UIAlertAction = UIAlertAction(title: okLocalized,
style: .Default) { action in
success?(text: self.newQtyField.text!)
}
关于ios - 快速代码返回警报类型字符串不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38517119/
欢迎光临 OGeek|极客世界-中国程序员成长平台 (https://ogeek.cn/) | Powered by Discuz! X3.4 |