我正在尝试使用 swift https://github.com/skywinder/ActionSheetPicker-3.0 来完成这项工作.问题是当我点击完成按钮或取消按钮时, block 没有被调用。这是怎么来的?我已将 doneBlock 设置为 done 变量,将 cancelBlock 设置为 cancel 变量。日志中没有返回任何内容?
@IBAction func openClosePicker(sender: UIButton!) {
var stringPicker = ActionSheetStringPicker(title: "Nav Bar From Picker", rows: ["One", "Two", "A lot"], initialSelection: 1, doneBlock: {done in return}, cancelBlock: {cancel in return }, origin: sender.superview!.superview)
stringPicker.showActionSheetPicker()
let done: ActionStringDoneBlock = {(picker: ActionSheetStringPicker!, selectedIndex: NSInteger!, selectedValue : AnyObject!) in
println(selectedValue)
}
let cancel: ActionStringCancelBlock = {(picker: ActionSheetStringPicker!) in
println("Block Picker Canceled")
}
}
最佳答案
我觉得您对变量 done
和 cancel
的使用有问题。看起来您只是在匿名 block 中引用它们。你试过这个吗?
@IBAction func openClosePicker(sender: UIButton!) {
let done: ActionStringDoneBlock = {(picker: ActionSheetStringPicker!, selectedIndex: NSInteger!, selectedValue : AnyObject!) in
println(selectedValue)
}
let cancel: ActionStringCancelBlock = {(picker: ActionSheetStringPicker!) in
println("Block Picker Canceled")
}
var stringPicker = ActionSheetStringPicker(title: "Nav Bar From Picker",
rows: ["One", "Two", "A lot"],
initialSelection: 1,
doneBlock:done,
cancelBlock:cancel,
origin: sender.superview!.superview)
stringPicker.showActionSheetPicker()
}
关于ios - block 不被调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26914040/